бесконечный git pull git удаленный цикл обрезки — как исправить?

#git #github

Вопрос:

Мой вывод git приводит к

 error: cannot lock ref 
    'refs/remotes/origin/victor/moreLocalGCPStorageTesting':  
    'refs/remotes/origin/victor' exists; cannot create 
    'refs/remotes/origin/victor/moreLocalGCPStorageTesting'
From github.com:deanhiller/webpieces
    ! [new branch]          victor/moreLocalGCPStorageTesting ->
    origin/victor/moreLocalGCPStorageTesting  (unable to update local ref)
    error: some local refs could not be updated; try running
    'git remote prune origin' to remove any old, conflicting branches

 

поэтому я запускаю git remote prune origin, а затем git pull и получаю ту же ошибку.

Все это на GitHub, как мне это исправить?

Подробнее. Когда я запускаю ветку git ->

 (base) Deans-MacBook-Pro:webpieces dean$ git branch
* master
  submit_dean/generateHttpClient
  submit_dean/googleCloudStorage
  submit_dean/startingFixedSsl
 

Хорошо, эти две ветви в моем удаленном репо существуют ->

  • происхождение/Виктор
  • происхождение/виктор/moreLocalGCPStorageTesting

Обратите внимание на случай, поскольку именно это все испортило!!

Комментарии:

1. каковы результаты: git remote prune origin ? вы упомянули, что пробовали. Вы проверили, что у вас нет локальной ветви и удаленной ветви (неотслеживаемой-нет восходящего потока) с одинаковым именем локально и на удаленном компьютере?

2. Сначала я прочитал одну из букв «Л»в вашей фамилии как «Т»:)

Ответ №1:

'refs/remotes/origin/victor' exists; cannot create 'refs/remotes/origin/victor/moreLocalGCPStorageTesting'

Git извлек новую ссылку на ветвь, вызванную victor/moreLocalGCPStorageTesting с удаленного компьютера, но не может создать victor каталог локально, потому что уже вызвана ссылка на ветвь victor .

Вот как это выглядит в файловой системе:

 .git/refs/remotes/origin/
|-- victor                          <-- This branch reference exists,
`-- victor                          <-- so Git cannot create this directory
    `-- moreLocalGCPStorageTesting  <-- in order to store this new branch.
 

Вы можете попробовать переименовать локальную victor ветвь удаленного отслеживания во что-то другое. Вам придется сделать это в файловой системе, хотя:

 $ mv .git/refs/remotes/origin/victor .git/refs/remotes/origin/foo
 

Если вы проверили victor локальную ветвь, вам также следует обновить ее исходную ссылку. Кроме того, имейте в виду, что в следующий раз, когда вы принесете, вы снова получите victor ветку.

Лучшее решение-попросить автора victor ветки переименовать ее в вышестоящем репо.

Комментарии:

1. по иронии судьбы, я не создал ни одну из этих ветвей, но Виктор создал ветвь origin/Victor и origin/victor/moreLocalGCPStorageTesting, и ваш пост помог мне это понять.