Git ошибка притяжения: ошибка: удаленный реф включен, но ожидается

Полное сообщение:

error: Ref refs/remotes/origin/user is at 3636498c2ea7735fdcedc9af5ab3c8689e6abe77 but expected a21359c6cc2097c85775cde6a40105f4bd7100ec
From github.com:{github project url}
 ! a21359c..6273ffc  user -> origin/user  (unable to update local ref)
127
задан Sanjeev Kumar Dangi 03 авг. '12 в 16:20
источник поделиться
9 ответов

Если вы используете git в файловой системе, которая не чувствительна к регистру (Windows или OS X), это произойдет, если есть две ветки с тем же именем, но с другой заглавной буквой. user_model_changes и user_model_changes, так как обе удаленные ветки будут совпадать с тем же номером отслеживания.

Удалите неправильную удаленную ветвь (у вас не должно быть ветвей, которые отличаются только в зависимости от случая), а затем git remote prune origin и все должно работать

142
ответ дан krijesta 22 авг. '12 в 12:15
источник поделиться

Постоянное исправление

git update-ref -d разрешил мой экземпляр этой ошибки, например

git update-ref -d refs/remotes/origin/user

Обратите внимание, что это не влияет на удаленный.

В моем случае последующий git fetch снова взял эту ветку, а после git fetches/pulls больше не выдавал ошибку "удаленный реф был в ожидании".

Если это не работает, временное исправление:

Заметим также, что если вам не нужна соответствующая ветка (например, вы просто хотите обновить мастер, а не origin/user), обходной путь git pull заключается в том, чтобы извлечь, а затем просто слить конкретную ветвь, о которой вы заботитесь, например,

git fetch # may give an error for a particular branch, but other branches will still be successfully fetched
git merge origin/master
87
ответ дан JDiMatteo 29 дек. '15 в 22:21
источник поделиться

Просто удалите папки и файлы в разделе ".git\refs\remotes\origin". Работает, когда у вас нет неактивных изменений.

11
ответ дан Prakash Saravanan 15 марта '16 в 14:59
источник поделиться

Мне пришлось удалить мою ветвь из моей командной строки:

.git\refs\remotes\{my remote}\{**my branch**}

а затем вручную выполните:

git pull [remote_name] [branch_name]

Я смог вытащить изменения.

Примечание. Я использовал SourceTree и не смог выполнить pull.

9
ответ дан jogam5 31 марта '16 в 5:08
источник поделиться

Жесткий reset также устранит проблему

git reset --hard origin/master
4
ответ дан mruanova 21 авг. '17 в 19:41
источник поделиться

Более четкие шаги

  • в терминале

    cd /.git/refs/remotes/origin
    
  • do ls, вы увидите несколько ветвей и HEAD

  • Удалите ветку, которая, по вашему мнению, имеет проблему

    rm branchname
    
  • Если это не сработало, удалите все ветки /HEAD

    • вы можете wana pull

Надеюсь, что сейчас это работает.

1
ответ дан shareef 10 июля '17 в 21:49
источник поделиться

git for-each-ref -format = 'delete% (refname)' refs/original | git update-ref --stdin git reflog expire --expire = now - all git gc --prune = now

0
ответ дан Luciano 06 нояб. '17 в 23:21
источник поделиться

В этом же случае, но ничего о комментариях не было опубликовано в моем случае, у меня есть только одна ветвь (master) и использую только файловую систему Unix, эта ошибка возникает случайным образом при запуске git fetch --progress --prune origin и ветка впереди или "источник/мастер". Никто не может совершить, только 1 пользователь может сделать push.

ПРИМЕЧАНИЕ. У меня есть подмодуль в репозитории acme, и у acme есть новые изменения в подмодулях (новые коммиты). Мне нужно сначала обновить подмодуль с обновлением подмодуля git.

[2014-07-29 13:58:37] Payload POST received from Bitbucket
[2014-07-29 13:58:37] Exec: cd /var/www/html/acme
---------------------
[2014-07-29 13:58:37] Updating Git code for all branches
[2014-07-29 13:58:37] Exec: /usr/bin/git checkout --force master
[2014-07-29 13:58:37] Your branch is ahead of 'origin/master' by 1 commit.
[2014-07-29 13:58:37]   (use "git push" to publish your local commits)
[2014-07-29 13:58:37] Command returned some errors:
[2014-07-29 13:58:37] Already on 'master'
---------------------
[2014-07-29 13:58:37] Exec: /usr/bin/git fetch --progress --prune origin
[2014-07-29 13:58:39] Command returned some errors:
[2014-07-29 13:58:39] error: Ref refs/remotes/origin/master is at 8213a9906828322a3428f921381bd87f42ec7e2f but expected c8f9c00551dcd0b9386cd9123607843179981c91
[2014-07-29 13:58:39] From bitbucket.org:acme/acme
[2014-07-29 13:58:39]  ! c8f9c00..8213a99  master     -> origin/master  (unable to update local ref)
---------------------
[2014-07-29 13:58:39] Unable to fetch Git data

Чтобы решить эту проблему (в моем случае), просто запустите сначала git push, если ваша ветка впереди.

0
ответ дан Tecnocat 30 июля '14 в 9:50
источник поделиться

попробуйте это, он работает для меня в терминале git удаленной начальной черновике

0
ответ дан Ranganatha G V 12 дек. '17 в 15:03
источник поделиться

Другие вопросы по меткам