Git: nie można pobrać gałęzi - błąd: ścieżkaspec „…” nie pasuje do żadnego pliku (ów) znanego z git

706

Nie jestem pewien, dlaczego nie mogę wyewidencjonować oddziału, nad którym wcześniej pracowałem. Zobacz poniższe polecenia (uwaga: coto alias dla 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.

Nie jestem pewien, co to znaczy, i nie mogę znaleźć niczego, co mogę zrozumieć w Google.

Jak mogę sprawdzić tę gałąź i co mogę zrobić, aby to złamać?

AKTUALIZACJA :

Znalazłem ten post , a bieganie git show-refdaje mi:

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

AKTUALIZACJA w .gitkatalogu ( user_controlled_site_layoutsznajduje się w 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

Aktualizować na git show 3af84fcf1508c44013844dcd0998a14e61455034

$ git show 3af84fcf1508c44013844dcd0998a14e61455034
commit 3af84fcf1508c44013844dcd0998a14e61455034
Author: Ramon Tayag <[email protected]>
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"
Ramon Tayag
źródło
Czy to może pomóc? stackoverflow.com/questions/2527355/...
Boldewyn
To działa, jeśli nie: git checkout refs/heads/user_controlled_site_layouts?
Mark Longair
2
Mark - nie, nadal pojawia się ten sam błąd.
Ramon Tayag
1
Widząc twoją aktualizację, nie jestem pewien, jak masz gałąź, która pojawia się w, git branch -aale nie w git show-ref. Czy plik .git/refs/heads/feature/user_controlled_site_layoutfaktycznie istnieje? Jeśli tak, co cat .git/refs/heads/feature/user_controlled_site_layoutdaje?
Mark Longair
1
Wystąpił ten sam błąd, utworzyłem gałąź z innego repozytorium i próbuję pobrać tę gałąź do innego repo. Więc mam to z powodu różnych transakcji repo.
Kushan Gunasekera

Odpowiedzi:

947

Spróbuj git fetch, aby lokalne repozytorium pobierało wszystkie nowe informacje z github. Po prostu pobiera informacje o nowych oddziałach i nie ma rzeczywistego kodu. Po tym git checkoutpowinno działać dobrze.

MarkoHiel
źródło
18
W celu dalszego wyjaśnienia git fetchprzydaje się, gdy potrzebujesz zsynchronizować lokalne repozytorium ze zdalnym repozytorium, ale nie chcesz scalać zmian w folderze roboczym.
Mark Lakata,
138
W przypadku klonu z wieloma pilotami pilot git checkout Branchnie działa. W przypadku wielu pilotów tylko nazwa oddziału jest niejednoznaczna i wymaga specyfikacji zdalnego / oddziału. Polecenie git checkout -b branch remote/branchdziała w tym scenariuszu.
Umair Ishaq
1
Jakoś udało mi się stworzyć lokalnego „master”, więc chociaż „git fetch” zbliżyło mnie do siebie, musiałem najpierw usunąć mojego lokalnego master („git branch -d master”), zanim przełączyłem się na zdalnego master („git checkout”) mistrz"). Gdyby to pomogło każdemu, kto jest tak głupi jak ja!
Jamie Brown
1
@ Aleks, to nie jest zaakceptowana odpowiedź, ponieważ nie ma to nic wspólnego z pytaniem PO. Nie mógł już sprawdzać oddziału, który wcześniej wypisał (tj. Utworzył) lokalnie . Tylko dlatego, że inne osoby z innym, znacznie bardziej podstawowym problemem znalazły i poparły tę odpowiedź (która jest całkowicie trywialna i dobrze znana każdemu użytkownikowi gita z ponad dwudniowym doświadczeniem), nie oznacza, że ​​OP powinien ją zaakceptować.
Michael Johnston,
11
git fetchmógł wykonać pracę. Ale zdalne pobranie wszystkich gałęzi może się nie powieść. Musisz ustawić wzorzec dopasowania pobierania. git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"patrz: stackoverflow.com/questions/11623862/…
Jichao
363

Ten błąd pojawiał się, gdy próbowałem pobrać nowy oddział:

error: pathspec 'BRANCH-NAME' nie pasuje do żadnego pliku (ów) znanego z git.

Kiedy próbowałem git checkout origin/<BRANCH-NAME>, otrzymałem odłączoną GŁOWĘ:

(odłączony od pochodzenia /)

Wreszcie wykonałem następujące czynności, aby rozwiązać problem :

git remote update
git fetch 
git checkout --track origin/<BRANCH-NAME>
Mayank
źródło
15
za pomocą tego polecenia „kasa” mam następujący komunikat: fatal: Nie można zaktualizować ścieżek i jednocześnie przejść do gałęzi „foo”.
NEOline,
1
Po ręcznej modyfikacji adresu zdalnego nie mogłem pobrać nowych oddziałów. Wydaje się, że „git remote update” załatwi sprawę.
martin
bez „zdalnej aktualizacji git” nie działało. Dzięki!
Kristiyan Tsvetanov
git checkout --track origin/staging fatal: git checkout: --track and --no-track require -bwersja git 1.5.6.5
Iwan Borszczow
Używane zamiast tego trzecie poleceniegit checkout -b staging --track origin/staging
Iwan Borszczow
152

Wystąpił ten błąd dla oddziału, który był zdalny i nie miał lokalnego oddziału śledzenia. Chociaż jestem pewien, że sprawdziłem zdalne oddziały za pomocą prostego

git checkout feature/foo

w przeszłości, aby obejść ten błąd, musiałem

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

Nie mam też pojęcia, co zrobiłem, aby znaleźć się w takiej sytuacji.

Gregory McIntyre
źródło
1
Niestety nie wysłałem go do zdalnego serwera git.
Ramon Tayag
To zadziałało dla mnie. Stało się to na git v 1.6 na maszynie FC10.
FractalSpace
26
Git zwykle zgaduje zdalną gałąź, by to sprawdzić, ale kiedy używasz więcej niż jednego pilota, wydaje się, że już nie może tego zrobić. Źródło: makandracards.com/makandra/…
Elijah Lynn
1
robienie funkcji git checkout / foo zamiast po prostu git checkout foo działało dla mnie
Alejandro Moreno
zaczęło mi się to dziać (w repozytorium z wieloma pilotami i setkami oddziałów, z których z powodzeniem sprawdzałem oddziały od pochodzenia przez 3 lata) i byłem zdziwiony. Podczas inspekcji odkryłem, że dodałem nowego pilota i zrobiłem to z kopiowaniem / wklejaniem w edytorze tekstu zamiast używania polecenia git, i zapomniałem zmienić fetch = +refs/heads/*:refs/remotes/origin/*wiersz, aby pasował do nowej nazwy zdalnego. LOL. Może stało się to z Makandrą? ponieważ po naprawieniu, sprawdzanie gałęzi po raz kolejny pobiera ją od pochodzenia, mimo że mam wiele pilotów.
Michael Johnston,
91

Jeśli usunąłeś gałąź git branch -D yourbranchnamei ponownie ściągnąłeś / sklonowałeś swoje repozytorium, być może będziesz musiał ponownie utworzyć swój lokalny oddział.

Próbować:

git checkout -b yourbranchname
Francisco Alvarez
źródło
ta opcja zawsze działa, nawet tam, gdzie pliki są już zmienione i chcesz przekazać je do nowo utworzonego oddziału.
Nerius Jok
To był pomocny komentarz, ponieważ chociaż podzielałem ten sam problem / pytanie, co OP, podane odpowiedzi zakładały prostą sytuację. Niestety w mojej sytuacji wcześniej utworzyłem TYLKO oddział lokalny, a następnie usunąłem go, jak zauważył tutaj @Francisco Alvarez, więc bez względu na to, jak wypróbowałem inne rozwiązania, nie mogłem pobrać nowego oddziału zdalnego. Ta odpowiedź uratowała mi bekon.
David
61

Mam te same pytania i otrzymałem informacje z tego linku: git fetch nie pobiera wszystkich gałęzi

Teraz mogę nie być pewien, jak to się stało, a przynajmniej możemy to rozwiązać:

Krok 1. Sprawdź ustawienie „remote.origin.fetch”, powinno być tak

$ git config --get remote.origin.fetch

+ referencje / heads / private_dev_branch: referencje / piloty / origin / private_dev_branch

Krok 2. Zmień „remote.origin.fetch”, aby pobrać wszystko

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

$ git config --get remote.origin.fetch

+ referencje / głowy / *: referencje / piloty / pochodzenie / *

Następnie możesz wypróbować polecenie „git pull” (może „git fetch origin” również działa, ale nie próbowałem), aby uzyskać całą gałąź.

bearzyj
źródło
@onionjake ma rację, przepraszam, że nie sprawdziłem pytań we wszystkich szczegółach. Właśnie dostałem te same komunikaty o błędach podczas próby wykonania tej samej akcji „git checkout <istniejąca_gałęzi>”, ale w rzeczywistości różni się od problemu inicjatora ----- inicjator może zobaczyć gałąź lokalnie, podczas gdy ja nie. Moja odpowiedź może rozwiązać problem, dla którego nie udało się pobrać wszystkich gałęzi w zaawansowany sposób. Ale nie sytuacja z problemem autora.
bearzyj
3
Wiele osób, w tym ja, otrzymuje ten błąd, ponieważ mogą sklonować repozytorium z flagą --branch, dlatego nawet po pobraniu git nie dostają innych gałęzi i nie mogą niczego pobierać zdalnie. To rozwiązuje ten problem. Dzięki!
Orif Chodżajew
Dziękuję Ci bardzo. Korzystałem z obrazu dokowanego programu tensorflow, który ogranicza gałąź do określonej wersji. Po skonfigurowaniu konfiguracji pobierania mogę teraz kasować.
Michael_Zhang
24

Uwaga: użytkownicy Git Windows - bez ustawienia --icase-pathspecslub GIT_ICASE_PATHSPECS = 1 env var , w specyfikacjach ścieżki git rozróżniana jest wielkość liter, w takim przypadku

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

to nie to samo co

git checkout origin/FooBranch "some/path/to/file.Txt"
StuartLC
źródło
1
Należy zauważyć, że z dokumentacji nie wynika jasno, że --icase-pathspecsparametr musi być pierwszy lub przynajmniej wcześniej-C <path>
sonyisda1
21

Jeśli nazwa gałęzi i nie masz żadnego niezaangażowanego pliku, spróbuj tego

git fetch && git checkout <branch name>
Sajin M. Aboobakkar
źródło
To wcale nie wydaje się mieć związku z pytaniem?
onionjake,
Dostałem ten sam problem, o którym mowa powyżej, rozwiązany za pomocą następujących poleceń
Sajin M Aboobakkar,
19

Napotkałem problem przy zmianie oddziału.

Zrobiłem próbę ściągnięcia bieżącej gałęzi, a następnie spróbowałem sprawdzić nową i działała

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

Ankit Marothi
źródło
Naprawdę przydatne :)
vikifor
Dlaczego to miałoby działać? Czy robi git pullcoś więcej niż tylko ciągnięcie obecnej gałęzi?
Cameron Hudson
15
git pull

To po prostu to naprawiło dla mnie :)

OpMt
źródło
13

Mam ten sam problem, ponieważ użyłem git clone --depth=1, co oznacza --single-branch.

Wykonanie zakończone git clonenaprawi to.

Huachao Huang
źródło
Dzięki za zwrócenie na to uwagi. To dokładnie ten sam problem, z którym się spotkałem. Dzięki
Mukesh Kumar,
Pełny klon może nie być wymagany. Jeśli gałąź została utworzona przez kogoś innego PO pierwotnym sklonowaniu repozytorium, pojawia się ten błąd, ponieważ repozytorium lokalne nie zawiera żadnych informacji o tym nowym oddziale. Po prostu przełącz się na master i wykonaj git pull. Następnie spróbuj pobrać nowy oddział.
Yasin
12

Dostałem to, gdy wykonałem następujące czynności:

  • Używany IntelliJ IDE, podłączony do git
  • Utworzono nowy plik i dodano do git
  • Zmieniłem nazwę nowego pliku

Kiedy próbowałem sprawdzić w katalogu, dostałem ten błąd.

Naprawić:

Otworzyłem repo w rozszerzeniach git. Widziałem, że plik (o starej nazwie) został zainscenizowany. Ale ponieważ już nie istniał, nie można go było popełnić.

Po prostu rozpakowałem ten plik.

Następnie ponownie dodałem plik (tym razem poprawnie nazwany) do git i zatwierdziłem bez błędów.

Somaiah Kumbera
źródło
Zabawne jest to, że nadal działa z TortoiseGit, nawet jeśli nie działa w wersji
intelektualnej
3
To mi bardzo pomogło. Użyłem SourceTree, aby znaleźć plik f * ck r pliku i rozpakowałem go.
Vinchenzo
10

Miałem ten problem dzisiaj starałem się git checkout foo, aleerror: pathspec 'foo' did not match any file(s) known to git.

Okazuje się, że miałem złe repozytorium . Więc wyciągnięta lekcja: sprawdź, które repozytorium oglądasz, zanim zaczniesz wariować.

James Harrington
źródło
Ha - tak, to byłem ja - utworzyłem oddział w Bitbucket z biletu Jira, nie zauważyłem, że utworzył go w losowym repo
Keir
sidenote: Pracowałem z wieloma pilotami, miałem jeden ustawiony poprawnie, a drugi wskazywał na niewłaściwe repo. sooo. dzięki za przypomnienie, mogłem łatwo zobaczyć mój problem, kiedy zrobiłem git remote -v
Dreamling
8

Najpierw sprawdź gałąź nadrzędną kasy, a następnie wpisz

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

Mam nadzieję, że to pomoże!.

Shradhey Tripathi
źródło
8

Naprawiłem to, modyfikując plik konfiguracyjny git. Sprawdź plik konfiguracyjny w katalogu git - .git\config

Wcześniej miał

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

Naprawiłem, modyfikując go do

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

Zauważ, że głowa wskazywała tylko na jedną gałąź, więc nie mogła znaleźć odniesienia do innych istniejących gałęzi, zmieniłem ją na *, więc sprawdza wszystko, co pochodzi.

Szorstki
źródło
Dzięki, kolego, godziny wysiłków i wreszcie wylądowałem z twoim rozwiązaniem.
Sunil Lulla,
8

Wystąpił ten błąd podczas próby pobrania oddziału za pośrednictwem:

git checkout branchX

których wcześniej nie sprawdzałem. Działa tylko wtedy, gdy jawnie podaje pilot:

git checkout --track origin/branchX

Powodem tego było to, że miałem 2 różne piloty (origin + sth. Else) skonfigurowane w git config. Ponieważ nie potrzebowałem drugiego pilota, usunąłem go i voila, zadziałało. Alternatywą do ustawienia domyślnego pilota za pomocą:

checkout.defaultRemote=origin

nie działało dla mnie

RS1980
źródło
Dodałem tę odpowiedź, ponieważ wszystkie inne sugerowane odpowiedzi nie działały dla mnie, więc mam nadzieję, że to pomoże komuś, kto ma tę samą przyczynę (2 piloty).
RS1980,
7

W systemie operacyjnym Windows domyślnie instalowany jest git

core.ignorecase = true

Oznacza to, że w plikach repozytorium git nie będzie rozróżniana wielkość liter, aby to zmienić, należy wykonać:

\yourLocalRepo> git config core.ignorecase false

możesz znaleźć tę konfigurację w pliku .git \ config

Vasile Bors
źródło
7

Skopiowałem zdalne pochodzenie urlz innego .git/configpliku, dzięki czemu w nowym .git/configpliku brakowało następującego wiersza w [remote "origin"]sekcji

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

Naprawiono dodawanie powyżej linii error: pathspec 'master' did not match any file(s) known to git.

AamirR
źródło
6

Miałem ten sam problem. Myślałem, że mam nazwę oddziału, foogdy próbuję:

git checkout foo

Dostawałem:

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

Potem wypróbowałem pełną nazwę oddziału:

git checkout feature/foo

potem pracował dla mnie.

tokhi
źródło
5

Jeśli tak się dzieje w systemie Windows, prawdopodobnie jest to kwestia wielkości liter.

Miałem dzisiaj ten błąd - utworzyłem nowy plik, dodałem do GIT, następnie zmieniłem jedną literę w nazwie pliku z dolnej na górną, a potem nie mogłem nic - zatwierdzić, przywrócić, usunąć plik z repozytorium.

Jedynym rozwiązaniem, jakie znalazłem, była zmiana nazwy pliku z powrotem na dokładnie ten sam przypadek, gdy dodałem ten plik do GIT, a następnie przywrócenie GIT w celu usunięcia tego pliku z GIT, a następnie zmiana nazwy pliku ponownie, jak chcę. Po tych zmianach mogłem zobowiązać się do repozytorium, a następnie wypychać bez żadnego problemu.

Marcin Nabiałek
źródło
Pomogło to, ale należy wspomnieć o zmianie nazwy za pośrednictwem git mv. Chyba zrobiłeś to w ten sposób, ponieważ nie udało mi się to za pośrednictwem mojego IDE (IntelliJ PhpStorm) ...
Dennis98,
5

W moim przypadku mam DWA oddział 1) master (który jest dla serwera na żywo) 2) dev (serwer testowy). Ustawiłem wiele pilotów do wypychania kodu na odpowiednim serwerze. Kiedy próbowałem zmienić gałąź, dostałem błąd jakerror: pathspec 'master' did not match any file(s) known to git.

Możesz je zobaczyć według git remote -v. Usunąłem innego pilota oprócz originpilota przezgit remote remove <remote-name>

Następnie git fetch

Teraz jestem w stanie dokonać zakupu oddziału przez git checkout <branch-name>.

NiRmaL
źródło
5

Ten sam problem napotkałem, kiedy pierwszy raz bawiłem się z git. Podczas próby pierwszego zatwierdzenia ...

git commit -m 'first commit!'

Dostałem błąd wspomniany przez PO ...

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

Myślałem, że mogłem pomylić git, używając słowa kluczowego w komunikacie zatwierdzenia, więc wypróbowałem kilka innych słów i otrzymałem ten sam błąd.

Wreszcie w wiadomości użyłem podwójnych cudzysłowów ...

git commit -m "first commit!"

Okazało się to sukcesem ...

[master (root commit) 0000000] first commit!
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 dummyDoc.txt
TheLastGIS
źródło
5

Popełniłem głupi błąd, nie podając flagi -m podczas zatwierdzania (zdarza się lol)

git commit -m "commit message in here"
Ajain Vivek
źródło
ta sama sytuacja tutaj. po prostu zapomnij "-m" otrzymaj ten sam błąd msg.
Niuya
5

Miałem inną pierwotną przyczynę

Miałem skrypt, który w zasadzie przeszukuje wszystkie gałęzie pasujące do klucza wydania Jira w „PRJ-1234” wśród wszystkich gałęzi, aby wykonać polecenie kasowania gałęzi git na pasującej gałęzi

Problem w moim przypadku polegał na tym, że 2 lub więcej gałęzi współużytkowało ten sam klucz Jira i dlatego spowodował błąd mojego skryptu z wyżej wymienionym błędem

Usunięcie starej nieużywanej gałęzi i upewnienie się, że tylko jedna gałąź ma odniesienie do klucza Jira, rozwiązało problem

Oto mój kod na wypadek, gdyby ktoś chciał go użyć

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

zapisz to jako switchbranch.sh

Następnie użyj go z terminala ./switchbranch.sh PRJ-1234

Korayem
źródło
Dla mnie była to również właściwa ścieżka / nazwa, w tym pobieranie wszystkich zdalnych tagów, a także „git fetch --all --tags --prune” znajdowanie właściwej nazwy: „git branch -a | grep some_upstream” przed sprawdzeniem go pełną ścieżką jako „git checkout -f --track -b new_branch pilates / upstream / some_upstream_branch”
kisna
4

Żadna z tych odpowiedzi nie rozwiązała mojego problemu:

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.

Próbowałem wrócić i zbudować zatwierdzenie Version object v2.0.1. Na szczęście wpadłem na pomysł wypróbowania całego kodu skrótu i ​​zadziałało! Co oznacza, że ​​użyłem niewłaściwego końca kodu skrótu.

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...))
$

Jak pokazano powyżej, w przypadku częściowych kodów skrótu należy podać interfejs użytkownika, a nie zaplecza.

Nikolaii99
źródło
4

Zdarzyło mi się po zmianie nazwy niezaangażowanego pliku w Android Studio.

Wydawało się, że Git ma starą wersję w swoim repozytorium, nawet jeśli już nie istnieje.

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

Więc otworzyłem Git GUI TortoiseGit, który pokazał mi dokładny plik, który spowodował problemy.

Następnie usunąłem plik z repozytorium za pomocą

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

i problem zniknął

Marian Klühspies
źródło
3

W moim przypadku zmieniłem nazwę pliku, zmieniając wielkość liter pliku, tj. SomeFile.js -> someFile.js

Myślę, że to było związane z problemem. Wykonanie pobrania git nie rozwiązało problemu.

Wyprowadziłem pliki z mojego projektu, wykonałem pobieranie i wykonałem push bez nich. Potem zrobiłem pobranie, dodałem je z powrotem i wykonałem push, i zadziałało. Nie wiem, czy wszystkie te kroki były potrzebne, ale ostatecznie zadziałało.

Wyrko
źródło
Push bez pliku o zmienionej nazwie i wydanie pliku git add zrobili to dla mnie
phil294
3

w moim przypadku wchodzę do katalogu podmodułów bez robienia tego

  • git submodule init
  • git submodule update

Tak więc git został połączony z folderem nadrzędnym, który rzeczywiście nie trafił w tę gałąź.

Ilya Gazman
źródło
3

sprawdź, czy nie jest to literówka w nazwie pliku docelowego. Próbowałem pisać na scenę

git add includes/connection..php

Ale nie zauważyłem, że używam dwóch kropek, ale potem piszę

git add includes/connection.php

To działa

Matteus Barbosa
źródło
2

Dla mnie to był problem z moimi danymi uwierzytelniającymi


Po wypróbowaniu niektórych odpowiedzi jedna z nich pomogła mi rozwiązać problem:

Uruchomienie git fetchzgłosiło następujący błąd:

Nie można rozpoznać hosta: bitbucket.org

Wszystko, co musiałem zrobić, to zmusić moje IDE (w moim przypadku kod VS) do zapamiętania moich poświadczeń:

git config --global credential.helper wincred

Git natychmiast zsynchronizował wszystkie zmiany i git checkout <branche>działa teraz dobrze!

Jeffrey Roosendaal
źródło
1

Tak samo było pathspec errorna git-bash. Użyłem Tortoise git w systemie Windows, aby przełączyć / sprawdzić kasę.

kapitan
źródło