Przeprowadziłem migrację repozytoriów z Bitbucket lub Github. Nie sądzę, żeby to miało znaczenie, ale to jedyna różnica ... Przez chwilę miałem ustawione dwa piloty:
origin: bitbucket
github: github
Następnie usunąłem oba i wskazałem źródło na github:
git remote remove origin
git remote remove github
git remote add origin https://github....
Test push gałęzi deweloperskiej:
git push origin develop
Wszystko aktualne, ok, dobrze.
Utwórz nowy oddział dla niektórych prac, jak zwykle:
git checkout -b Feature/Name
Zaktualizuj jeden lub dwa pliki. Spróbuj wysłać do pilota:
git push origin Feature/Name
Powoduje to błąd:
fatal: Feature / Name nie można przypisać rozgałęzieniu
Wyszukaj w Internecie ten problem, znajdź informacje dotyczące upewnienia się, że HEAD jest poprawne, inne dotyczące upewnienia się, że nazwa mojego oddziału jest poprawna (chociaż w tym momencie gałąź jeszcze nie istnieje na pilocie). Nie można rozwiązać.
Uruchomiłem to polecenie:
git push --all -u
To Feature/Name
spowodowało, że moja gałąź na github, ale nadal widzę to samo zachowanie co poprzednio:
git push origin develop
git push origin Feature/Name
Pierwsza działa, druga wyrzuca ten sam błąd.
Nie mogę dowiedzieć się, dlaczego otrzymuję ten błąd. Jakieś pomysły?
Feature/Name
? Czy na pewnoFeature/Name
istnieje i to jest wyewidencjonowana gałąź? Sprawdź zgit branch
.git branch
sprawdzićFeature/Name
, czy istnieje lokalnie? Nie ufaj GUI ani IDE. Poza tym, czy dobrze trafiłeś w sprawę?git push origin Feature/Name:Feature/Name
?git push --all -u
mam nową gałąź na githubie, ale nadal nie mogę pushować z lokalnego, prawda? Oto, co się z tym stało ... rzeczywista nazwa gałęzi to,SQLMigration/ReportFixes
a co jest na githubieSqlMigration/ReportFixes
. Więc teraz mogęgit push origin SqlMigration/ReportFixes
- dlaczego github zmienia dla mnie wielkość liter? Agh.Odpowiedzi:
Ja też miałem ten problem i doprowadzało mnie to do szału. Miałem coś takiego,
feature/name
alegit branch -a
mi pokazałemFEATURE/name
. Zmiana nazwy oddziału, usunięcie i odtworzenie go, nic nie działało. Co ostatecznie to naprawiło:Wejść do
.git/refs/heads
Zobaczysz
FEATURE
folder. Zmień nazwę nafeature
.źródło
Opierając się na moich własnych testach i komentarzach OP , myślę, że w pewnym momencie popełnili błąd w przypadku nazwy oddziału.
Po pierwsze, uważam, że OP działa w systemie operacyjnym niewrażliwym na wielkość liter, takim jak OS X lub Windows. Potem zrobili coś takiego ...
Zwróć uwagę na różnicę w obudowie. Zwróć też uwagę, że błąd jest bardzo różny od wpisania nazwy.
Ponieważ Github używa systemu plików do przechowywania nazw gałęzi, próbuje otworzyć
.git/refs/heads/SqlMigration/ReportFixes
. Ponieważ system plików nie rozróżnia wielkości liter, otwiera się pomyślnie,.git/refs/heads/SqlMigration/ReportFixes
ale jest zdezorientowany, gdy próbuje porównać nazwy gałęzi z uwzględnieniem wielkości liter i nie pasują.Nie jestem pewien, w jaki sposób doszli do stanu, w którym znajduje się oddział lokalny,
SQLMigration/ReportFixes
a oddział zdalnySqlMigration/ReportFixes
. Nie wierzę, że Github zepsuł nazwę zdalnego oddziału. Najprostszym wyjaśnieniem jest to, że ktoś inny z dostępem push zmienił nazwę oddziału zdalnego. W przeciwnym razie w pewnym momencie zrobili coś, co zdołało stworzyć pilota z literówką. Jeśli sprawdzą historię swojej powłoki, byćhistory | grep -i sqlmigration/reportfixes
może uda im się znaleźć polecenie, w którym błędnie wpisali obudowę.źródło
Git pozwoli ci sprawdzić aktualną gałąź z inną obudową i nie znajdzie odniesienia na pilocie.
Właśnie się dowiedziałem.
źródło
> git branch
i sprawdzić, czy obok Twojej gałęzi jest *.Przydarzyło mi się coś podobnego. Stworzyłem gałąź o nazwie „Feat / name”. Próbowałem go pchnąć za pomocą:
Mam ten sam błąd krytyczny co Ty:
Aby go rozwiązać, utworzyłem nową gałąź, ponieważ wpłynęło to na bardzo niewiele plików. Następnie wymieniłem moje gałęzie, aby usunąć niewłaściwy i wyświetliło się bez czapki:
Używałem czapek wcześniej, ale nigdy na pierwszym znaku. Wygląda na to, że gitowi się to nie podoba ...
źródło
Rozróżniana jest wielkość liter, po prostu upewnij się, że utworzona gałąź i wypchnij do gałęzi znajdują się w tym samym kapitale.
Przykład:
NIEPRAWIDŁOWY sposób postępowania:
PRAWIDŁOWY sposób działania:
źródło
Może zapomniałeś uruchomić git fetch? wymagane jest pobranie danych ze zdalnego repozytorium! Spróbuj biegać
git fetch remote/branch
źródło
W moim przypadku miałem folder gałęzi (lub jakkolwiek to się nazywa) z dużymi literami, a następnie tworzę nowy z różnicą wielkości liter (małe litery), ale git faktycznie tworzy gałąź z dużymi literami.
Stworzyłem gałąź jak
feature-ABC/branch1
wcześniej i pchnąłem ją. Następnie tworzę gałąźfeature-abc/branch2
(zwróć uwagę na małe litery ABC) i próbuję wypchnąć ją do zdalnego za pomocągit push --set-upstream origin feature-abc/branch2
i otrzymuję błąd „nie można rozwiązać na gałąź”. Więcgit branch
widzę, że faktycznie stworzyłfeature-ABC/branch2
zamiastfeature-abc/branch1
dla mnie. Kasy ponownie za pomocągit checkout feature-ABC/feature2
i naciskam, używając wielkich liter (feature-ABC/feature2
), aby rozwiązać problem.źródło
Napotkałem ten sam problem, który był spowodowany przejściem do gałęzi z niewłaściwą obudową. git pozwala mi przełączyć się na gałąź z nieprawidłową
feature/Name
wielkością liter, czyli zamiastfeature/name
. Znalazłem łatwiejsze rozwiązanie niż wymienione powyżej tylko:git checkout master (or develop)
git checkout feature/name
<z prawidłową obudowągit push
źródło
Rozwiązałem to w systemie Windows 10, używając cmd zamiast GitBash .
Ma to związek z wielkością liter i tym, jak obsługuje je git i wiersze poleceń.
źródło
Możliwe, że utworzyłeś podobną gałąź, ale różną wielkość liter, wtedy musisz uruchomić:
git branch -D <name-of-different-case-branch>
a następnie spróbuj ponownie.
źródło
Nieznacznie zmodyfikowana odpowiedź @Ty Le:
żadne zmiany w plikach nie były dla mnie wymagane - miałem gałąź o nazwie 'Feature / ...' i podczas wypychania w górę zmieniłem tytuł na 'feature / ...' (wielkość pierwszej litery została zmieniona na młodszą ).
źródło
Właśnie miałem ten problem i moje normalne gałęzie zaczynają się od,
pb-3.1-12345/namebranch
ale przypadkowo zamieniłem pierwsze 2 litery na dużePB-3.1/12345/namebranch
. Po zmianie nazwy oddziału na małe litery mogłem utworzyć gałąź.źródło
dla mnie nazwałem gałąź jako
wszystko, co musiałem zrobić, to podczas używania
pisać
tak jak kiedyś tworzyłem gałęzie używając małej litery rw rel.
więc co spowodowało ten problem?
kiedy wymieniłem
.git/refs/heads
znalezione treściale nie
Relx.x
!wewnątrz
bug
i wewnątrzbug
nazwy mojego oddziału.Więc spróbuj stworzyć katalog z tą samą nazwą, ale różnymi literami
ale system nie rozróżnia wielkości liter.
To właśnie spowodowało ten problem!
źródło
Miałem ten sam problem z inną obudową.
Zrobiłem checkout na programistę (lub master), a następnie zmieniłem nazwę (zła nazwa) na coś innego, np. Test.
następnie zmień nazwę z powrotem na właściwą
następnie przejdź do gałęzi z prawą nazwą
następnie działało, aby przesłać do zdalnego oddziału
źródło
Dla mnie problem polegał na tym, że ustawiłem git i mój system plików macOS na dwie różne czułości wielkości liter. Mój komputer Mac był sformatowany w formacie APFS / rozróżnia wielkość liter: NIE, ale w pewnym momencie zmieniłem ustawienia git, próbując rozwiązać dziwny problem z nazewnictwem zasobów obrazu Xcode, więc git config --global core.ignorecase false . Odwrócenie go z powrotem wyrównało ustawienia i odtworzenie gałęzi i popchnięcie, aby wrócić na właściwe tory.
git config --global core.ignorecase true
Źródło: https://www.hanselman.com/blog/GitIsCasesensitiveAndYourFilesystemMayNotBeWeirdFolderMergingOnWindows.aspx
źródło
Miałem ten sam problem, ale został rozwiązany. Zrozumiałem, że nazwa gałęzi jest wrażliwa na wielkość liter. Główna gałąź w GitHubie to „master”, podczas gdy w moim poleceniu gitbash jest to „Master”. Zmieniłem nazwę Master w lokalnym repozytorium na master i zadziałało! 😀😀
źródło
Wpadłem na ten sam problem i zauważyłem, że pomyliłem obudowę podczas sprawdzania gałęzi. Wymeldowałem się
branchName
zamiastBranchName
i kiedy próbowałem pchać do pilota, otrzymałem ten sam błąd.Poprawka:
Ustawiając nadrzędną nazwę na poprawną nazwę, poprawna gałąź została zaktualizowana na githubie i mogłem wtedy pobrać poprawną nazwę gałęzi za pomocą
I powinien być aktualny po ostatnim naciśnięciu.
źródło
Jeśli jesteś w lokalnym oddziale, możesz zmienić nazwę oddziału „Funkcja / Nazwa” na „Funkcja / Nazwa”
git -m feature/Name
jeśli masz problemy z dokonaniem
git push
płatności w innej branży (ex develop) i powrocie do oddziału o zmienionej nazwiegit checkout feature/Name
i spróbuj ponownie
git push
źródło