Github Windows: "Не удалось синхронизировать эту ветку"


124

Я использую Github Windows 1.0.38.1, и когда я нажимаю кнопку «Синхронизировать» после фиксации, я получаю сообщение об ошибке

введите описание изображения здесь

Как мне отладить эту проблему? Если в оболочке, что делать?

Синхронизация работает нормально, если я делаю git pushилиgit pull , но в следующий раз, когда я захочу выполнить синхронизацию с помощью окон Github, я получу ту же ошибку.


1
Для меня это было потому, что я забыл удалить очень большой файл из коммита. У Github есть максимальный размер файла, и я переборщил.
pmcilreavy

5
Мне нравится, как много ответов, любой из которых мог бы быть правильным в данном случае, но ни один из них не верен. Это для тебя Git.
15ee8f99-57ff-4f92-890c-b56153 03

1
Эта ошибка может возникнуть из-за того, что вы не подключены к Интернету. Вроде очевидно, но ... эй.
levininja

1
У нас были проблемы с интернетом в офисе, и это произошло. Однако оболочка git все еще работала.
Фрэнк Кэннон

Ответы:


113

Когда он говорит это, просто откройте оболочку и делайте git status. Это даст вам хорошее представление о том, что может быть не так, и о состоянии вашего репо.

Я не могу назвать вам конкретную ошибку, так как это происходит по многим причинам в Github для Windows, например, проблема с обновлением подмодулей и т. Д.


3
Спасибо! Как новичок, когда дело касается git и GitHub, у которого была та же проблема, что и у исходного вопроса, это было очень полезно :) Отличный ответ!
Dyndrilliac

5
git stashпомог. Надеюсь, я когда-нибудь займусь GIT.
ivkremer 07

Я перезапустил свой GitHub, и проблема была решена! Это случилось после того, как у меня возникли конфликты при слиянии.
Рафаэль Фернандес,

1
У меня такая же проблема, но я использую подключенный диск. С этим ответом я теперь просто фиксирую с помощью GitHub Desktop и git pushGit.
zanderwar

@manojlds как насчет того, когда git status просто говорит, что ваша ветка обновлена, нечего фиксировать, рабочий каталог чист?
levininja

16

Эта ошибка возникает из-за конфликта слияния в файлах. Я столкнулся с этим после того, как обновил pom.xml своего Maven Project, но не зафиксировал его. С помощью

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

поскольку предложенный выше пост помог найти любые противоречивые изменения, и вы можете решить отменить или зафиксировать.


Я перезапустил свой GitHub, и проблема была решена! Это случилось после того, как у меня возникли конфликты при слиянии.
Рафаэль Фернандес,

11

У меня такая же проблема. Со мной это случилось из-за противоречивых изменений. Я удалил локальный репозиторий своего проекта со своего рабочего стола, а затем снова клонировал его с веб-сайта github (используя опцию клонирования в моей учетной записи), ошибка исчезла.


5

У меня была такая же проблема, когда я пытался изнутри Visual Studio, и "git status" в оболочке не показывал никаких проблем. Но мне удалось протолкнуть локальные изменения с помощью "git push" через оболочку.


Как говорит Ровсен, чтобы добавить немного цвета застрявшим: если GitHub для Windows дает сбой, но в Git Shell вы видите весь зеленый цвет и это git statusсообщение «Ваша ветка опережает origin / master на 1 фиксацию». (Используйте «git push» для опубликуйте свои локальные коммиты) ". Ввод git pushисправил это для меня. Я перезапустил GitHub для Windows, и синхронизация наконец заработала!
micstr

4

У меня была эта проблема, и я обнаружил, что это связано с прокси. Я исправил проблему с помощью этой команды:

 git config --global http.proxy %HTTP_PROXY%

2

Вероятно, это крайний случай, но каждый раз, когда у меня возникает эта конкретная ошибка, это связано с тем, что я недавно подключил диск в Windows, и powershell не могу его найти.

Перезагрузка компьютера (в первую очередь) устраняет ошибку для меня, так как powershellтеперь я могу выбрать только что подключенный диск. Просто убедитесь, что вы подключились к подключенному диску, ПЕРЕД открытием клиента github.


Тоже самое. Перезапустил, а потом все заработало, просто пожимает плечами
shieldgenerator7

О, МОЙ БОГ! Я только что переехал в новый офис, и мои подключенные диски больше не работали. Но они не имели никакого отношения к git или моим рабочим папкам. Я просто удалил сопоставления, и затем GitHub Desktop начал работать. Это имеет быть ошибка , так как она не должна даже смотреть на этих сетевых дисков?
DeborahK

2

У меня такая же проблема. В моем случае git не смог найти глобальную переменную%HTTP_PROXY% просто потому, что Windows не предоставляла / не использовала ее.

Я решил это, исключив переменную из файла конфигурации git (находится в %USERPROFILE%\.gitconfig):

[http]
#   proxy = %HTTP_PROXY%

2

Вы недавно меняли свой пароль Windows или хотя бы тот, который используете для подключения к прокси-серверу?

Это была моя проблема, и она git statusне могла мне помочь. Мне пришлось изменить свои учетные данные в файле ".git / config", чтобы обойти эту ошибку.


Я получил ошибку от этого. Серьезно, они должны просто правильно настроить прокси-сервер в пользовательском интерфейсе и запросить новое имя пользователя и пароль. Или даже NTLM, если они чувствуют (немного) в моде.
Роб Грант

1

Эта ошибка также возникает, если ветка, которую вы пытаетесь синхронизировать, была удалена.

git statusне скажет вам об этом, но вы получите сообщение «такая ссылка не получена», если вы попытаетесь git pull.


1

Еще одна причина, которая может вызвать это, - это когда вы подключаете сетевой диск или подключаете VHD после того, как GitHub Desktop уже был запущен. Причина этого в том, что GitHub Desktop использует ssh-agent из переносимой установки GIT для установления соединений и никогда не закрывает его ... даже если вы удалите приложение. Процесс начинается без знания нового диска и никогда не обновляется, а когда он используется для запуска команд GIT для работы с вашим репозиторием, он терпит неудачу, потому что он не понимает пути.

Решение в этом случае - закрыть GitHub Desktop и использовать диспетчер задач для завершения работающего ssh-агента перед его повторным запуском. При необходимости это запустит новый экземпляр ssh-agent, который подберет новые сопоставления дисков и т. Д.


1

Убедитесь, что ветка, на которую вы пытаетесь нажать, не защищена. Я пытался нажать на защищенную ветку и потерпел неудачу, как и вы.


0

проверьте " git status " и " git pull " в оболочке и выясните, что не так. и моя проблема - это узел http.proxy в конфигурации, поэтому Github Windows должна быть намного умнее, например, просто открыть оболочку и дать больше советов после появления ошибки (ошибок).


0

Как и в ответах HTTP-прокси, это также может произойти из-за подключения к VPN. Отключение моего VPN-соединения решило эту проблему.


0

У меня была такая же проблема, и «git status» тоже не показало никаких проблем, тогда я просто перезапустил святой клиент GitHub для Windows, и он работал как шарм.


0

Я была такая же проблема. Я удалил репо из клиента GitHub для Windows (контекстное меню) и снова добавил его. Когда я повторно добавил, я заметил, что у меня было около 300 незафиксированных изменений, и он сообщал об ошибке памяти. Я отменил все изменения, а затем синхронизация снова начала работать нормально. (Пользователь Rookie Git - я уверен, что есть более эффективные способы сделать это в командной строке)


0

Журнал отладки может дать некоторое представление. Я использую v3.3.4.0, ваш опыт может отличаться, но должен быть похожим. В меню настроек выберите «О Github Desktop ...». Щелкните ссылку, чтобы просмотреть журнал отладки. В моем случае произошла очень явная ошибка:

*** фатальная ошибка - обнаружено несоответствие базы cygheap - 0x1157408 / 0x1167408. Эта проблема, вероятно, связана с использованием несовместимых версий библиотеки DLL cygwin.

Он даже дал несколько полезных советов по решению проблемы.

Я не уверен, почему эта информация не отображается в сообщении об ошибке, но, по крайней мере, она была доступна.


0

Я попытался с помощью Android Studio зафиксировать изменения и подтолкнуть их к освоению, но в окне появилось всплывающее окно, в котором мне нужно ввести учетные данные Github ( https://github.com ). Я зарегистрировался с помощью своей учетной записи Gmail. Поэтому я попытался ввести свой идентификатор Gmail вместе с паролем. Очевидно, что Git не имеет моего пароля Gmail и не может сопоставить его с тем, что я предоставляю, поэтому в итоге я отменил push.
Когда я попытался синхронизировать свои изменения через окно графического интерфейса GitHub, я обнаружил эту ошибку. По git statusкоманде Git Shell предложила отправить изменения как

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

Я сделал то же, что и Git Shell ( git push), и теперь все в порядке.

Примечание: для тех, кто плохо знаком с git, вам нужно изменить свой путь к папке, в которой находится ваш файл .git, в противном случае при каждой вводимой вами команде Git Shell будет показывать ошибку, что это не репозиторий git.

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

Например, если ваш проект находится на Dдиске в какой-либо папке, вам нужно сделать что-то вроде ниже, как вы это делаете, cmdчтобы сменить каталог.

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

И если он находится во вложенной папке в D

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

Если кто-то знает, как войти во всплывающее окно Github из окон, как я регистрировался с учетной записью Google, и здесь 2 поля только имя пользователя Github, пароль, дайте мне знать. Я решил проблему, но потратил некоторое время, поэтому я тоже хочу узнать о входе в систему.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.