Git: tidak dapat melakukan checkout cabang - kesalahan: pathspec '...' tidak cocok dengan file apa pun yang dikenal git


706

Saya tidak yakin mengapa saya tidak dapat melakukan checkout cabang yang saya kerjakan sebelumnya. Lihat perintah di bawah ini (catatan: coadalah alias untuk checkout):

ramon@ramon-desktop:~/source/unstilted$ git branch -a
* develop
  feature/datts_right
  feature/user_controlled_menu
  feature/user_controlled_site_layouts
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/feature/datts_right
  remotes/origin/master
ramon@ramon-desktop:~/source/unstilted$ git co feature/user_controlled_site_layouts 
error: pathspec 'feature/user_controlled_site_layouts' did not match any file(s) known to git.

Saya tidak yakin apa artinya, dan sepertinya saya tidak dapat menemukan apa pun yang dapat saya mengerti di Google.

Bagaimana cara saya checkout cabang itu, dan apa yang dapat saya lakukan untuk mematahkan ini?

PEMBARUAN :

Saya menemukan pos ini , dan berlari git show-refmemberi saya:

97e2cb33914e763ff92bbe38531d3fd02408da46 refs/heads/develop
c438c439c66da3f2356d2449505c073549b221c1 refs/heads/feature/datts_right
11a90dae8897ceed318700b9af3019f4b4dceb1e refs/heads/feature/user_controlled_menu
c889b37a5ee690986935c9c74b71999e2cf3c6d7 refs/heads/master
c889b37a5ee690986935c9c74b71999e2cf3c6d7 refs/remotes/origin/HEAD
e7c17eb40610505eea4e6687e4572191216ad4c6 refs/remotes/origin/develop
c438c439c66da3f2356d2449505c073549b221c1 refs/remotes/origin/feature/datts_right
c889b37a5ee690986935c9c74b71999e2cf3c6d7 refs/remotes/origin/master
23768aa5425cbf29d10ff24274adad42d90d15cc refs/stash
e572cf91e95da03f04a5e51820f58a7306ce01de refs/tags/menu_shows_published_only
429ebaa895d9d41d835a34da72676caa75902e3d refs/tags/slow_dev

UPDATE pada .gitdirektori ( user_controlled_site_layoutsada di refs/heads/feature folder):

$ ls .git/refs/heads/feature/
datts_right  user_controlled_menu  user_controlled_site_layouts
$ cat .git/refs/heads/feature/user_controlled_site_layouts
3af84fcf1508c44013844dcd0998a14e61455034

DIPERBARUI pada git show 3af84fcf1508c44013844dcd0998a14e61455034

$ git show 3af84fcf1508c44013844dcd0998a14e61455034
commit 3af84fcf1508c44013844dcd0998a14e61455034
Author: Ramon Tayag <xxx@xxxxx.xxx>
Date:   Thu May 12 19:00:03 2011 +0800

    Removed site layouts migration

diff --git a/db/schema.rb b/db/schema.rb
index 1218fc8..2040b9f 100755
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
 #
 # It's strongly recommended to check this file into your version control system.

-ActiveRecord::Schema.define(:version => 20110511012647) do
+ActiveRecord::Schema.define(:version => 20110503040056) do

   create_table "attachments", :force => true do |t|
     t.string   "name"
@@ -205,15 +205,6 @@ ActiveRecord::Schema.define(:version => 20110511012647) do
     t.integer  "old_id"
   end

-  create_table "site_layouts", :force => true do |t|
-    t.string   "name"
-    t.text     "description"
-    t.text     "content"
-    t.integer  "site_id"
-    t.datetime "created_at"
-    t.datetime "updated_at"
-  end
-
   create_table "site_styles", :force => true do |t|
     t.text     "published"
     t.datetime "created_at"


Apakah itu berfungsi jika Anda melakukannya git checkout refs/heads/user_controlled_site_layouts:?
Mark Longair

2
Mark - tidak, masih mendapatkan kesalahan yang sama.
Ramon Tayag

1
Melihat pembaruan Anda, saya tidak yakin bagaimana Anda memiliki cabang yang muncul git branch -atetapi tidak di git show-ref. Apakah file tersebut .git/refs/heads/feature/user_controlled_site_layoutbenar-benar ada? Jika demikian, apa yang cat .git/refs/heads/feature/user_controlled_site_layoutmemberi?
Mark Longair

1
Saya mendapat kesalahan yang sama, saya membuat cabang dari repo lain dan mencoba untuk checkout cabang itu ke repo lain. Jadi saya mendapatkannya karena repo yang berbeda.
Kushan Gunasekera

Jawaban:


947

Cobalah git fetchagar repositori lokal Anda mendapat semua info baru dari github. Hanya membutuhkan informasi tentang cabang baru dan tidak ada kode aktual. Setelah itu git checkoutharus bekerja dengan baik.


19
Untuk klarifikasi lebih lanjut, git fetchberguna ketika Anda perlu menyinkronkan repositori lokal Anda dengan repositori jarak jauh, tetapi Anda tidak ingin menggabungkan perubahan ke dalam folder kerja Anda.
Mark Lakata

138
Dalam kasus klon dengan beberapa remote, git checkout Branchitu tidak berfungsi. Dengan beberapa remote hanya nama Cabang yang ambigu dan membutuhkan spesifikasi remote / cabang. Perintah git checkout -b branch remote/branchberfungsi dalam skenario itu.
Umair Ishaq

1
Saya berhasil membuat "master" lokal, jadi meskipun "git fetch" membuat saya lebih dekat, saya harus menghapus master lokal saya terlebih dahulu ("git branch -d master"), sebelum beralih ke remote master ("git checkout menguasai"). Jika itu membantu orang lain yang sama bodohnya dengan saya!
Jamie Brown

1
@ Aleks itu bukan jawaban yang diterima karena tidak ada hubungannya dengan pertanyaan OP. Dia tidak bisa lagi memeriksa cabang yang sebelumnya dia periksa (yaitu dibuat) secara lokal . Hanya karena orang lain dengan masalah yang berbeda dan jauh lebih mendasar telah menemukan & memutakhirkan jawaban ini (yang benar-benar sepele dan terkenal bagi pengguna git dengan pengalaman lebih dari dua hari) tidak berarti OP harus menerimanya.
Michael Johnston

11
git fetchbisa melakukan pekerjaan. Tetapi mungkin gagal untuk mendapatkan semua cabang dari jarak jauh. Anda harus mengatur pola pengambilan pertandingan. git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"lihat: stackoverflow.com/questions/11623862/...
Jichao

363

Saya mendapatkan kesalahan ini ketika saya mencoba checkout cabang baru:

error: pathspec 'BRANCH-NAME' tidak cocok dengan file apa pun yang dikenal git.

Ketika saya mencoba git checkout origin/<BRANCH-NAME>, saya mendapatkan KEPALA yang terpisah:

(terlepas dari asal /)

Akhirnya, saya melakukan yang berikut untuk menyelesaikan masalah :

git remote update
git fetch 
git checkout --track origin/<BRANCH-NAME>

15
dengan perintah "checkout" ini, saya memiliki pesan ini: fatal: Tidak dapat memperbarui jalur dan beralih ke cabang 'foo' secara bersamaan.
NEOline

1
Setelah secara manual memodifikasi alamat jarak jauh, saya tidak bisa checkout cabang baru. "git remote update" sepertinya melakukan trik.
martin

tanpa "pembaruan jarak jauh git" itu tidak berfungsi. Terima kasih!
Kristiyan Tsvetanov

git checkout --track origin/staging fatal: git checkout: --track and --no-track require -bgit versi 1.5.6.5
Ivan Borshchov

Digunakan berikutnya bukan perintah ketigagit checkout -b staging --track origin/staging
Ivan Borshchov

152

Saya mendapatkan kesalahan ini untuk cabang yang jauh dan tidak memiliki cabang pelacakan lokal. Meskipun saya yakin saya sudah memeriksa cabang jarak jauh melalui sederhana

git checkout feature/foo

di masa lalu, untuk mengatasi kesalahan ini saya harus

git checkout -t -b feature/foo origin/feature/foo

Saya tidak tahu apa yang saya lakukan untuk membuat diri saya dalam situasi itu juga.


1
Sayangnya, saya tidak mendorongnya ke server git jarak jauh.
Ramon Tayag

Ini berhasil untuk saya. Itu terjadi pada git v 1.6 pada mesin FC10.
FractalSpace

26
Git biasanya menebak cabang remote untuk memeriksa, tetapi ketika menggunakan lebih dari satu remote, sepertinya itu tidak lagi bisa melakukan itu. Sumber: makandracards.com/makandra/…
Elijah Lynn

1
melakukan fitur checkout git / foo alih-alih git checkout foo bekerja untuk saya
Alejandro Moreno

ini mulai terjadi pada saya (dalam repo dengan banyak remote dan ratusan cabang dari mana saya telah berhasil memeriksa cabang dari asal selama 3 tahun) dan saya bingung. Setelah diperiksa, saya menemukan saya telah menambahkan remote baru dan saya telah melakukannya dengan copy / paste di editor teks daripada menggunakan perintah git, dan lupa untuk mengubah fetch = +refs/heads/*:refs/remotes/origin/*baris agar sesuai dengan nama remote baru. LOL. Mungkin ini terjadi pada makandra? karena setelah memperbaikinya, memeriksa cabang sekali lagi mendapatkannya dari asal, meskipun saya memiliki banyak remote.
Michael Johnston

91

Jika Anda menghapus cabang dengan git branch -D yourbranchnamedan menarik / mengkloning repo Anda lagi, Anda mungkin perlu membuat cabang lokal lagi.

Mencoba:

git checkout -b yourbranchname

opsi ini selalu berfungsi, meskipun file sudah diubah dan Anda ingin mendorongnya ke cabang yang baru dibuat.
Nerius Jok

Ini adalah komentar yang membantu karena sementara saya berbagi masalah / pertanyaan yang sama dengan OP di sini, jawaban yang diberikan mengasumsikan situasi langsung. Sayangnya, dalam situasi saya, sebelumnya saya HANYA membuat cabang lokal, lalu menghapusnya seperti yang dicatat di sini oleh @Francisco Alvarez, jadi tidak masalah bagaimana saya mencoba solusi lain di sini, saya tidak dapat menarik cabang jarak jauh yang baru. Jawaban ini menghemat daging saya.
David

61

Saya memiliki pertanyaan yang sama, dan mendapatkan beberapa informasi dari tautan ini: git fetch tidak mengambil semua cabang

Jadi sekarang, saya mungkin tidak yakin bagaimana situasi ini terjadi, setidaknya kita dapat menyelesaikannya:

Langkah 1. Periksa pengaturan "remote.origin.fetch" Anda, harus seperti ini

$ git config - dapatkan remote.origin.fetch

+ ref / kepala / private_dev_branch: refs / remote / origin / private_dev_branch

Langkah 2. Ubah "remote.origin.fetch" untuk mengambil semuanya

$ git config remote.origin.fetch "+ refs / heads / *: refs / remote / origin / *"

$ git config - dapatkan remote.origin.fetch

+ ref / head / *: ref / remote / origin / *

Kemudian, Anda dapat mencoba "git pull" (mungkin "git fetch origin" juga berfungsi tetapi saya tidak mencoba) untuk mendapatkan semua cabang.


@onionjake benar, maaf saya tidak memeriksa pertanyaan di setiap detail. Hanya saja saya mendapat pesan kesalahan yang sama ketika mencoba tindakan yang sama dari "git checkout <existed_branch>", tetapi berbeda dari masalah pencetusnya sebenarnya ----- pencetus dapat melihat cabang secara lokal sementara saya tidak bisa. Jawaban saya dapat memecahkan masalah bagi siapa yang tidak mengambil semua cabang di muka. Tapi bukan situasi untuk masalah pencetusnya.
bearzyj

3
Banyak orang termasuk saya menerima kesalahan ini, karena mereka dapat mengkloning repo dengan flag - cabang, oleh karena itu, bahkan setelah git mengambil mereka tidak mendapatkan cabang lain dan tidak dapat checkout apa pun dari jarak jauh. Ini memperbaiki masalah ini. Terima kasih!
Orif Khodjaev

Terima kasih banyak. Saya menggunakan gambar devel docker tensorflow, dan itu membatasi cabang ke versi tertentu. Setelah mengatur fetch config, sekarang saya bisa checkout.
Michael_Zhang

24

Hati-hati dengan pengguna Windows - tanpa pengaturan --icase-pathspecsatau GIT_ICASE_PATHSPECS = 1 env var , git pathspec akan peka huruf besar kecil, dalam hal ini

git checkout origin/FooBranch "Some/Path/To/File.txt"

tidak sama dengan

git checkout origin/FooBranch "some/path/to/file.Txt"

1
Satu hal yang perlu dicatat yang tidak jelas dari dokumentasi adalah bahwa --icase-pathspecsparameter tersebut harus didahulukan atau setidaknya sebelum-C <path>
sonyisda1

21

Jika nama cabang dan Anda tidak memiliki file yang tidak dikomit, maka coba ini

git fetch && git checkout <branch name>

Ini sepertinya tidak berhubungan dengan pertanyaan sama sekali?
onionjake

Saya mendapatkan masalah yang sama yang disebutkan di atas, diselesaikan dengan menggunakan perintah berikut
Sajin M Aboobakkar

19

Saya menghadapi masalah saat mengganti cabang.

Saya melakukan git pull pada cabang saat ini dan kemudian mencoba untuk checkout yang baru dan berhasil

git pull // on your old branch git checkout <new_branch>


Sangat berguna :)
vikifor

Mengapa ini bisa berhasil? Apakah git pullmelakukan lebih dari menarik cabang saat ini?
Cameron Hudson

Ini mungkin saja kasus yang Anda coba tarik dari cabang yang dibuat oleh orang lain dan itu belum menarik pada repo Anda saat ini.
Ankit Marothi

15
git pull

Itu hanya memperbaikinya untuk saya :)


13

Saya mendapat masalah yang sama karena saya menggunakan git clone --depth=1, yang menyiratkan --single-branch.

Apakah selesai git cloneakan memperbaikinya.


Terima kasih telah menunjukkannya. Persis sama dengan masalah yang saya hadapi. Terima kasih
Mukesh Kumar

Klon lengkap mungkin tidak diperlukan. Jika cabang dibuat oleh orang lain SETELAH Anda kloning repo, Anda mendapatkan kesalahan ini karena repo lokal Anda tidak memiliki informasi tentang cabang baru ini. Beralih saja ke master dan lakukan git pull. Kemudian cobalah untuk checkout cabang yang baru.
Yasin

12

Saya mendapatkan ini ketika saya melakukan hal berikut:

  • Digunakan IntelliJ IDE, terhubung ke git
  • Membuat file baru, dan ditambahkan ke git
  • Mengganti nama file baru

Ketika saya mencoba memeriksa di direktori, saya mendapatkan kesalahan ini.

Memperbaiki:

Saya membuka repo di ekstensi git. Saya melihat bahwa file (dengan nama lama) dipentaskan. Tetapi karena itu tidak ada lagi, itu tidak dapat dilakukan.

Saya cukup unstaged file ini.

Kemudian saya menambahkan kembali file (kali ini nama yang benar) ke git dan dilakukan tanpa kesalahan.


Lucunya, ini masih berfungsi dengan TortoiseGit bahkan jika itu tidak di intellij
Marian Klühspies

3
Ini sangat membantu saya. Saya menggunakan SourceTree untuk menemukan f * ck r dari file dan tidak mementaskannya.
Vinchenzo

10

Saya memiliki masalah ini hari ini yang saya coba git checkout foodan dapatkanerror: pathspec 'foo' did not match any file(s) known to git.

Ternyata saya salah repo . Jadi pelajaran yang dipetik: periksa repo yang Anda lihat sebelum panik.


Ha - ya ini saya - cabang yang dibuat di Bitbucket dari tiket Jira, tidak menyadari itu membuatnya dalam beberapa repo acak
Keir

sidenote: Saya bekerja dengan beberapa remote, ada satu set dengan benar, dan yang lainnya menunjuk ke repo yang salah. sooo. terima kasih atas pengingatnya, saya dapat dengan mudah melihat masalah saya ketika saya melakukan git -v
Dreamling

9

Saya mendapatkan kesalahan ini ketika mencoba checkout cabang melalui:

git checkout branchX

yang belum saya periksa sebelumnya. Ini hanya berfungsi ketika secara eksplisit menyatakan remote:

git checkout --track origin/branchX

Alasan untuk ini adalah, bahwa saya memiliki 2 remote yang berbeda (asal + sth. Lain) dikonfigurasi dalam konfigurasi git. Karena saya tidak memerlukan remote kedua, saya menghapus dan menjalankannya, itu berfungsi. Alternatif untuk mengatur remote default melalui:

checkout.defaultRemote=origin

tidak bekerja untuk saya


Saya menambahkan jawaban ini karena semua jawaban yang disarankan lainnya tidak bekerja untuk saya, jadi saya harap ini membantu seseorang yang memiliki penyebab yang sama (2 remote).
RS1980

8

Pertama, checkout cabang induk. Kemudian ketik

git fetch --all --prune 
git checkout <your branch>

Semoga ini bisa membantu !.


8

Saya memperbaikinya dengan memodifikasi file konfigurasi git saya. Periksa file konfigurasi Anda di direktori git Anda - .git\config

Sebelumnya punya

[remote "origin"]
url = http://git.xyz.com/abc-group/pqr.git
fetch = +refs/heads/develop:refs/remotes/origin/develop

Saya memperbaikinya dengan memodifikasinya

[remote "origin"]
url = http://git.xyz.com/abc-group/pqr.git
fetch = +refs/heads/*:refs/remotes/origin/*

Perhatikan bahwa kepala hanya menunjuk ke satu cabang, sehingga tidak dapat menemukan referensi ke cabang lain yang ada, saya mengubahnya menjadi * sehingga memeriksa semua yang asli.


Terima kasih, sobat, berjam-jam upaya dan akhirnya saya mendarat dengan solusi Anda.
Sunil Lulla

7

Pada OS Windows secara default git diinstall dengan

core.ignorecase = true

Ini berarti bahwa file git repo akan menjadi case-sensitive, untuk mengubah ini Anda perlu menjalankan:

\yourLocalRepo> git config core.ignorecase false

Anda dapat menemukan konfigurasi ini di file .git \ config


7

Saya menyalin asal yang jauh urldari .git/configfile lain , dengan demikian .git/configfile baru saya tidak ada pada baris berikut di [remote "origin"]bagian ini

fetch = +refs/heads/*:refs/remotes/origin/*

Menambahkan baris di atas diperbaiki error: pathspec 'master' did not match any file(s) known to git.


6

Saya memiliki masalah yang sama .. Saya pikir saya memiliki nama cabang fooketika saya mencoba untuk:

git checkout foo

Saya mendapatkan:

error: pathspec 'foo' did not match any file(s) known to git.

Kemudian saya mencoba nama cabang lengkap:

git checkout feature/foo

kemudian bekerja untuk saya.


5

Jika itu terjadi pada Windows, itu mungkin masalah nama file.

Saya mengalami kesalahan ini hari ini - Saya telah membuat file baru, ditambahkan ke GIT, kemudian saya mengubah satu huruf dalam nama file dari bawah ke atas dan kemudian saya tidak bisa melakukan apa pun - komit, kembalikan, hapus file dari repo.

Satu-satunya solusi yang saya temukan adalah mengubah nama file kembali ke kasus yang sama ketika saya menambahkan file ini ke GIT, kemudian melakukan GIT kembali untuk menghapus file ini dari GIT, kemudian mengubah nama file lagi seperti yang saya inginkan. Setelah perubahan itu saya bisa berkomitmen untuk repo dan kemudian mendorong tanpa masalah.


Ini membantu, tetapi harus disebutkan untuk melakukan penggantian nama melalui git mv. Kira Anda sudah melakukannya dengan cara ini, karena melakukannya melalui IDE saya (IntelliJ PhpStorm) gagal untuk saya ...
Dennis98

5

Dalam kasus saya, saya memiliki dua cabang 1) master (yang untuk server hidup) 2) dev (server uji). Saya telah menetapkan beberapa remote untuk mendorong kode pada server masing-masing. Ketika saya mencoba untuk beralih cabang saya mendapat kesalahan sepertierror: pathspec 'master' did not match any file(s) known to git.

Anda dapat melihatnya dengan git remote -v. Saya telah menghapus remote lain kecuali originoleh remotegit remote remove <remote-name>

Kemudian git fetch

Sekarang saya dapat melakukan checkout cabang git checkout <branch-name>.


5

Saya mengalami masalah yang sama ketika saya pertama kali bermain-main dengan git. Saat mencoba komit pertama saya ...

git commit -m 'first commit!'

Saya mendapatkan kesalahan yang disebutkan oleh OP ...

error: pathspec 'commit!'' did not match any file(s) known to git.

Saya pikir saya mungkin membingungkan git dengan menggunakan kata kunci dalam pesan commit, jadi saya mencoba beberapa kata lain dan menerima kesalahan yang sama.

Akhirnya saya menggunakan tanda kutip ganda dalam pesan ...

git commit -m "first commit!"

Ini ternyata berhasil ...

[master (root commit) 0000000] first commit!
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 dummyDoc.txt

5

Saya telah membuat kesalahan konyol karena tidak memberikan -m flag saat melakukan (lol terjadi)

git commit -m "commit message in here"

situasi yang sama di sini. lupakan saja "-m" dapatkan pesan kesalahan yang sama.
Niuya

5

Saya memiliki akar penyebab yang berbeda

Saya punya skrip yang pada dasarnya mencari semua cabang yang cocok dengan kunci masalah jira di untuk "PRJ-1234" di antara semua cabang untuk menjalankan perintah checkout cabang git pada cabang yang cocok

Masalah dalam kasus saya adalah 2 atau lebih cabang berbagi kunci jira yang sama dan karenanya menyebabkan skrip saya gagal dengan kesalahan yang disebutkan di atas.

Dengan menghapus cabang lama yang tidak terpakai dan memastikan hanya satu cabang saja yang memiliki referensi kunci jira menyelesaikan masalah

Ini kode saya seandainya seseorang ingin menggunakannya

git remote update
git fetch --all --prune 
git branch -r --list *$1* | xargs git checkout --force

simpan ini sebagai switchbranch.sh

Kemudian gunakan dari terminal ./switchbranch.sh PRJ-1234


Bagi saya, itu juga jalur / nama hulu yang tepat dan termasuk untuk mengambil semua tag jarak jauh juga "git fetch --all --tags --prune" menemukan nama yang tepat: "git branch -a | grep some_upstream" sebelum memeriksanya dengan path lengkap sebagai "git checkout -f --track -b new_branch remote / upstream / some_upstream_branch"
kisna

4

Tidak satu pun dari jawaban ini yang menyelesaikan masalah saya:

Nikolai@CALIGARI-7 ~/Documents/NetBeansProjects/Version (master)
$ git log --format=oneline
b9cc6a9078312865280fb5432a43e17eff03a5c6 Formatted README
288772f36befe6bd60dd41b8185f1e24e0119668 Updated README documentation
d2bdbe18f4169358d46fad50eacfb89786df3bf8 Version object v3.0.0-SNAPSHOT
a46b1910a3f548b4fa254a6055d25f68d3f217dd VersionFactory is now Platform agnostic
24179ae569ec7bd28311389c0a7a85ea7b4f9594 Added internal.Platform abstraction
252b684417cf4edd71aed43a15da2c8a59c629a7 Added IPlugin implementation for Sponge
e3f8d21d6cf61ee4fc806791689c984c149b45e3 Added IPlugin implementation for Bukkit
aeb403914310b4b10dee9e980cf64472e2bfda79 Refactored Version.java
ef50efcff700c6438d57f70fac30846de2747a7e Refactored TesterFactory
a20808065878d4d28657ae362235c837cfa8e625 Added IPlugin abstraction
9712a3575a70060d7ecea8b62bb5e888fdc32d07 Heavily refactored Tester
02d025788ae740dbfe3ef76a132cea8ca4e47467 Added generic Predicate<T> interface
9c565777abea9be6767dfdab4ab94ed1173750dd Minor refactoring of testCompareTo()
2ff2a28c221681e256dcff28770782736d3a796a Version object v2.0.1
d4b2e2bd830f77cdbc2297112c2e46b6555d4393 Fix compareTo()
05fe7e012b07d1a5b8de29804f96d9a6b24229a1 Make compareTo() fail
6e85371414357a41c1fc0cec0e75adba92f96832 Fix VersionFactory passing null
c1fd1f032f87d860d5ed9d6f6679c9fa522cff8d Version object v2.0
62c3a92c008a2ed11f0a4d016080afc3541d0700 Version object v1.2
c42e9e617128085e872c51b4d977a04e48d69e8f Deprecated, doc'd, future-proofed getNm


Nikolai@CALIGARI-7 ~/Documents/NetBeansProjects/Version (master)
$ git checkout 3a796a
error: pathspec '3a796a' did not match any file(s) known to git.

Saya mencoba untuk kembali dan membangun komit untuk Version object v2.0.1. Untungnya, saya mendapat ide untuk mencoba seluruh kode hash dan berhasil! Yang berarti bahwa saya menggunakan salah kode hash.

Nikolai@CALIGARI-7 ~/Documents/NetBeansProjects/Version (master)
$ git checkout 2ff2a
Note: checking out '2ff2a'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at 2ff2a28... Version object v2.0.1

Nikolai@CALIGARI-7 ~/Documents/NetBeansProjects/Version ((2ff2a28...))
$

Seperti yang ditunjukkan di atas, untuk kode hash parsial, Anda harus menyediakan front-end, bukan back-end.


4

Terjadi pada saya setelah mengganti nama file yang tidak dikomit di Android Studio.

Git tampaknya memiliki versi lama dalam repositori, bahkan jika itu tidak ada lagi.

fetch, pull, checkout, add all and so on did not help in my case!

Jadi saya membuka Git GUI dari TortoiseGit yang menunjukkan kepada saya file yang menyebabkan masalah.

Setelah itu saya menghapus file dari repositori dengan

git rm -r --cached /path/to/affected/file

dan masalahnya hilang


3

Dalam kasus saya, saya telah mengganti nama file mengubah kasus file, yaitu SomeFile.js -> someFile.js

Saya pikir itu terkait dengan masalah tersebut. Melakukan pengambilan git tidak memperbaiki masalah.

Saya memindahkan file keluar dari proyek saya, melakukan pengambilan, dan melakukan dorongan tanpa mereka. Kemudian saya mengambil, menambahkannya kembali, dan mendorong, dan itu berhasil. Saya tidak tahu apakah semua langkah itu diperlukan, tetapi akhirnya berhasil.


Dorong tanpa mengganti nama file dan mengeluarkan git add file setelah itu melakukannya untuk saya
phil294

3

dalam kasus saya, saya memasukkan direktori submodule tanpa melakukan

  • git submodule init
  • git submodule update

Jadi git ditautkan ke folder induk yang memang ketinggalan cabang itu.


3

periksa apakah ini bukan salah ketik pada nama file target. Saya mencoba untuk panggung dengan mengetik

git add includes/connection..php

Tapi saya tidak menyadari bahwa saya menggunakan dua titik. Tapi kemudian saya mengetik

git add includes/connection.php

Berhasil


2

Bagi saya, itu adalah masalah dengan kredensial saya


Setelah mencoba beberapa jawaban, salah satu dari mereka membantu saya untuk menyelesaikan masalah:

Menjalankan git fetchmelemparkan kesalahan berikut:

Tidak dapat menyelesaikan host: bitbucket.org

Yang harus saya lakukan adalah memaksa IDE saya (VS Code dalam kasus saya) untuk mengingat kredensial saya:

git config --global credential.helper wincred

Git segera menyinkronkan semua perubahan, dan git checkout <branche>berfungsi dengan baik sekarang!


1

Saya mendapatkan hal yang sama pathspec errordi git-bash. Saya menggunakan Tortoise git di windows untuk beralih / checkout cabang.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.