Github Windows „Nie udało się zsynchronizować tej gałęzi”

124

Używam Github Windows 1.0.38.1 i po kliknięciu przycisku „Synchronizuj” po zatwierdzeniu pojawia się błąd

wprowadź opis obrazu tutaj

Jak zdebugować ten problem? Jeśli w powłoce, co mam zrobić?

Synchronizacja działa dobrze, jeśli zrobię git pushlub git pull, ale następnym razem, gdy chcę zsynchronizować za pomocą okien Github, pojawia się ten sam błąd.

Nyxynyx
źródło
1
U mnie to dlatego, że zapomniałem usunąć bardzo duży plik z zatwierdzenia. Github ma maksymalny rozmiar pliku i skończyłem z tym.
pmcilreavy
5
Uwielbiam sposób, w jaki jest tak wiele odpowiedzi, z których każda w tym przypadku mogłaby być poprawna, ale żadna nie jest. To Git dla ciebie.
15ee8f99-57ff-4f92-890c-b56153
1
Ten błąd może wystąpić, ponieważ nie masz połączenia z Internetem. Niby oczywiste, ale ... hej.
levininja
1
Mieliśmy problemy z Internetem w biurze i tak się stało. Jednak powłoka git nadal działała.
Frank Cannon

Odpowiedzi:

113

Kiedy to mówi, po prostu otwórz obudowę i zrób git status. To da ci przyzwoity pogląd na to, co może być nie tak i stan twojego repozytorium.

Nie mogę podać konkretnego błędu, ponieważ zdarza się to z wielu powodów w Github dla Windows, na przykład problem z aktualizacją modułów podrzędnych itp.

manojlds
źródło
3
Dzięki! Jako nowicjusz, jeśli chodzi o git i GitHub, który miał ten sam problem, co oryginalna osoba zadająca pytanie, była to bardzo pomocna :) Doskonała odpowiedź!
Dyndrilliac
5
git stashpomógł. Mam nadzieję, że kiedyś dogadam się z GIT.
ivkremer,
Zrestartowałem GitHub i rozwiązałem problem! Stało się to po tym, jak miałem kilka konfliktów do scalenia.
Rafael Fernandes
1
Mam ten sam problem, ale używam zmapowanego dysku. Dzięki tej odpowiedzi po prostu zobowiązuję się do korzystania z GitHub Desktop i git pushGit.
zanderwar
@manojlds A co z sytuacją, gdy status git mówi tylko, że twoja gałąź jest aktualna, nie ma nic do zatwierdzenia, katalog roboczy jest czysty?
levininja
16

Ten błąd występuje z powodu konfliktu scalania plików. Zmierzyłem się z tym po zaktualizowaniu pom.xml projektu Maven, ale tego nie zrobiłem. Za pomocą

git status
error: Your local changes to the following files would be overwritten by merge:
<my project>/pom.xml
Please, commit your changes or stash them before you can merge.
Aborting

jak sugerował powyższy post, pomógł znaleźć wszelkie sprzeczne zmiany i możesz zdecydować o ich odrzuceniu lub zatwierdzeniu.

Navin Mishra
źródło
Zrestartowałem GitHub i rozwiązałem problem! Stało się to po tym, jak miałem kilka konfliktów do scalenia.
Rafael Fernandes
11

Miałem ten sam problem. Zdarzyło mi się to z powodu pewnych sprzecznych zmian. Usunąłem lokalne repozytorium mojego projektu z pulpitu, a następnie sklonowałem je ponownie ze strony github (używając opcji klonowania na moim koncie), błąd zniknął.

rk2
źródło
5

Miałem ten sam problem, gdy próbowałem z poziomu programu Visual Studio i „stan git” w powłoce nie wykazywał żadnego problemu. Ale udało mi się przepchnąć lokalne zmiany za pomocą polecenia „git push” przez powłokę.

Rovsen
źródło
Jak mówi rovsen, aby dodać trochę koloru do tych, które utknęły: Jeśli GitHub dla Windows zawiesza się, ale w Git Shell widzisz cały zielony i ten git statuskomunikat "Twoja gałąź wyprzedza 'origin / master' o 1 commit. (Użyj" git push ", aby publikuj lokalne commity) ”. Wchodzenie git pushnaprawiło to dla mnie. Zrestartowałem GitHub dla Windows i synchronizacja w końcu zadziałała!
micstr
4

Miałem ten problem i stwierdziłem, że ma to związek z proxy. Naprawiłem problem za pomocą tego polecenia:

 git config --global http.proxy %HTTP_PROXY%
Tomek
źródło
2

Jest to prawdopodobnie przypadek skrajny, ale za każdym razem, gdy mam ten konkretny błąd, dzieje się tak, ponieważ niedawno zmapowałem dysk w systemie Windows i powershell nie mogę go znaleźć.

Ponowne uruchomienie komputera (ze wszystkich rzeczy) naprawia błąd, podobnie jak powershellteraz można odebrać nowo zmapowany dysk. Po prostu upewnij się, że łączysz się z mapowanym dyskiem PRZED otwarciem klienta github.

kwakwa
źródło
To samo tutaj. Uruchomiony ponownie, a potem działał dobrze, wzruszając ramionami
shieldgenerator7
O MÓJ BOŻE! Właśnie przeniosłem się do nowego biura i moje zmapowane dyski przestały działać. Ale nie miały one nic wspólnego z git lub moimi folderami roboczymi. Po prostu usunąłem mapowania, a następnie GitHub Desktop zaczął działać. To musi być błąd, ponieważ nie powinien nawet patrzeć na te zmapowane dyski?
DeborahK
2

Miałem ten sam problem. W moim przypadku git nie mógł znaleźć zmiennej globalnej %HTTP_PROXY%, po prostu dlatego, że Windows jej nie udostępniał / nie używał.

Rozwiązałem to, wykluczając zmienną z pliku konfiguracyjnego git (znajdującego się w %USERPROFILE%\.gitconfig):

[http]
#   proxy = %HTTP_PROXY%
Steven
źródło
2

Czy ostatnio zmieniłeś hasło do systemu Windows lub przynajmniej to, którego używasz do łączenia się z serwerem proxy?

To był mój problem i git statusnie mógł mi pomóc. Musiałem zmienić moje dane logowania w pliku „.git / config”, aby obejść ten błąd.

Ralph Lavelle
źródło
Otrzymałem błąd z tego. Poważnie, powinni po prostu odpowiednio uświadomić to proxy w interfejsie użytkownika i poprosić o nową nazwę użytkownika i hasło. Lub nawet NTLM, jeśli czują się (nieco) fantazyjnie.
Rob Grant
1

Ten błąd występuje również, jeśli gałąź, którą próbujesz zsynchronizować, została usunięta.

git statusnie powie Ci tego, ale jeśli spróbujesz, otrzymasz komunikat „nie pobrano takiego odniesienia” git pull.

Libby
źródło
1

Jeszcze jedna rzecz, która może powodować to, gdy mapujesz dysk sieciowy lub podłączasz VHD po uruchomieniu GitHub Desktop. Powodem tego jest to, że GitHub Desktop używa ssh-agent z przenośnej instalacji GIT do nawiązywania połączeń i nigdy go nie zamyka ... nawet jeśli odinstalujesz aplikację. Proces rozpoczyna się bez wiedzy o nowym dysku i nigdy się nie odświeża, a gdy jest używany do uruchamiania poleceń GIT w celu pracy z repozytorium, kończy się niepowodzeniem, ponieważ nie rozumie ścieżek.

Rozwiązaniem w tym przypadku jest zamknięcie GitHub Desktop i użycie Menedżera zadań w celu zakończenia działającego agenta ssh przed ponownym uruchomieniem. W razie potrzeby uruchomi to nową instancję ssh-agent, która pobierze nowe mapowania dysków itp.

Corey
źródło
1

Upewnij się, że gałąź, do której próbujesz pchać, nie jest chroniona. Próbowałem przepchnąć się do chronionej gałęzi i zawiodłem tak samo jak ty.

mikii123
źródło
0

sprawdź " stan git " i " git pull " w powłoce i dowiedz się, co jest nie tak. a moim problemem jest węzeł http.proxy w konfiguracji, dlatego Github Windows powinien być o wiele bardziej inteligentny, jak po prostu otworzyć powłokę i dać więcej wskazówek po wyświetleniu błędu (ów).

Alex Kon
źródło
0

Zgodnie z odpowiedziami serwera proxy HTTP może się to również zdarzyć z powodu połączenia VPN. Odłączenie mojego połączenia VPN rozwiązało to za mnie.

Byron Claiborne
źródło
0

Miałem ten sam problem, a „status git” również nie wskazywał na żaden problem, a potem po prostu uruchomiłem ponownie świętego klienta GitHub dla systemu Windows i działało to jak urok.

Qasim
źródło
0

Miałem ten sam problem. Usunąłem repozytorium z klienta GitHub Windows (menu prawego przycisku myszy) i ponownie je dodałem. Kiedy dodałem ponownie, zauważyłem, że miałem około 300 niezatwierdzonych zmian i zgłaszał błąd pamięci. Odrzuciłem wszystkie zmiany, a następnie synchronizacja znów zaczęła działać poprawnie. (Początkujący użytkownik Git - jestem pewien, że istnieją lepsze sposoby na zrobienie tego w wierszu poleceń)

Stephen Kearns
źródło
0

Dziennik debugowania może dostarczyć pewnych informacji. Używam wersji 3.3.4.0, Twoje wrażenia mogą się różnić, ale powinny być podobne. Z menu ustawień wybierz „O Github Desktop ...”. Kliknij łącze, aby wyświetlić dziennik debugowania. W moim przypadku wystąpił bardzo wyraźny błąd:

*** błąd krytyczny - wykryto niedopasowanie baz cygheap - 0x1157408 / 0x1167408. Ten problem jest prawdopodobnie spowodowany użyciem niekompatybilnych wersji biblioteki DLL cygwin.

Zapewnił nawet kilka pomocnych wskazówek, jak rozwiązać problem.

Nie jestem pewien, dlaczego te informacje nie są widoczne w monicie o błędzie, ale przynajmniej były dostępne.

Opsimath
źródło
0

Próbowałem w Android Studio zatwierdzić zmiany i wypchnąć je do mastera, ale okno pokazało wyskakujące okienko, które muszę wprowadzić Github Credentials ( https://github.com ). Zrobiłem rejestrację za pomocą mojego konta Gmail, więc próbowałem wprowadzić mój identyfikator Gmail wraz z hasłem, oczywiście Git nie ma mojego hasła do Gmaila i nie może dopasować go do tego, co dostarczam, więc zakończyłem anulowanie push.
Kiedy próbowałem zsynchronizować moje zmiany za pośrednictwem okna GitHub GUI, napotykam ten błąd. Na git statuspolecenie Git Shell zasugerował wypychanie zmian jako

Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

Zrobiłem to samo, co sugerował Git Shell ( git push) i teraz wszystko jest w porządku.

Uwaga: dla kogoś, kto jest nowy w git, musisz zmienić ścieżkę do folderu, w którym znajduje się plik .git, w każdym poleceniu, które wprowadzisz Git Shell pokaże błąd, że nie jest to repozytorium git.

fatal: Not a git repository (or any of the parent directories):

Na przykład, jeśli twój projekt jest na Ddysku w jakimś folderze, musisz zrobić coś takiego jak poniżej, tak jak robisz to w cmdcelu zmiany katalogu.

cd D:\someFolder     // if your project is not deep in `D`

A jeśli znajduje się w zagnieżdżonym folderze w D

cd D:\somefolder\someNestedFolder\nestedInNested     // if your project is not deep in `D`

Jeśli ktoś wie, jak zalogować się do wyskakującego okienka Github z okien, tak jak ja zarejestrowałem się za pomocą konta Google, a tutaj są tylko 2 pola Nazwa użytkownika Github, hasło Proszę daj mi znać. Rozwiązałem problem, ale straciłem trochę czasu, więc chcę też wiedzieć o logowaniu.

Inzimam Tariq IT
źródło