Я использую 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

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

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

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

Skeeve

Ответов: 4

Ответы (4)

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

git fetch --tags -f

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

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

Turn off this setting:

enter image description here

Или добавьте это "git.pullTags": false в файл settings.json`

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


Подробное объяснение:

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

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

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

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


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

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

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

Решение:

git fetch --tags -f

Принудительно обновить локальный тег

Я получил эту ошибку для пакета при попытке запустить yarn install. Принятый ответ был для текущего репо и не сработал для меня, но это сработало:

rm -rf **/node_modules && yarn cache clean

I'd tried just removing node_modules before, guess cleaning yarn cache was what did it.

2022 WebDevInsider