Как избавиться от "затирать существующий тег"

106

Я использую git в VSCodium и каждый раз, когда пытаюсь вытащить git, жалуется.

Заглянув в журнал, я вижу

> git pull --tags origin master
From https://github.com/MY/REPO
 * branch            master     -> FETCH_HEAD
 ! [rejected]        latest     -> latest  (would clobber existing tag)
   9428765..935da94  master     -> origin/master

Выполнение команды с --forceподсказками до следующего раза.

Мне непонятно, что здесь не так. Что случилось и как я могу решить эту проблему?

Я имею в виду: помимо уничтожения моего локального репо и повторного клонирования.

Скив
источник

Ответы:

275

Вы должны обновить свои локальные теги удаленными тегами:

git fetch --tags -f

Затем снова потяните.

Туан Тран
источник
11
Это сработало для меня. У меня были проблемы с VSCode, а затем запуск в командной строке устранил проблему. :)
Хуан Луис Файлон
2
Спасибо, не могли бы вы объяснить это подробнее? Это одноразовая команда, в чем именно заключалась проблема и как она ее решила ..
Сагив bg
5
@ Sagivb.g на удаленном компьютере, кто-то удаляет тег и создает новый с тем же именем, тогда это произойдет на вашем локальном компьютере
Туан Тран
Или сразу git pull --tags -f.
Der Hochstapler
36

Поскольку вы говорите, что неясно, что идет не так, я предполагаю, что вы ни для чего не используете этот тег, а просто хотите выполнять свою работу.

Отключите этот параметр:

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

Теперь все готово.


Детальное объяснение:

Теги - это просто ссылки на определенные коммиты (как и имена веток). Основное отличие состоит в том, что git(насколько я знаю) предполагается, что теги не изменятся, а ветки должны обновляться.

Итак, «ошибка» в том, что у вас есть в вашем локальном теге, называемый latestуказывающим на фиксацию X, но на пульте дистанционного управления есть тег, называемый latestуказывающим на фиксацию Y. Если вы примените изменение с пульта дистанционного управления, вы перезапишете свой локальный тег.

VSCode по умолчанию извлечет все теги, поэтому вы получите сообщение об ошибке.

Нет ничего плохого в наличии «движущегося» тега, вроде того latest, что VSCode не учитывает это (личное мнение).


Кроме того, вы можете избежать проблемы, используя командную строку и вводя git pullкоманду вручную . В частности, вам нужно --tagsпропустить этот шаг процесса.

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

Влад274
источник
Большое спасибо. Мне пришлось обновить свой VSCodium, но потом все заработало. Думаю, еще можно избавиться от своей локальной метки?
Skeeve
1
см. мой ответ ниже
Tuan Tran