Git Merge Conflict - Удаленный файл удален, локальный файл изменен
Я слил изменения из другой ветви, но у меня возникают конфликты, поскольку файл удален в удаленной ветви, но есть изменения в локальной ветви.
Я хотел бы удалить файл - я пытался git rm path/to/file
но это говорит file: needs merge
, Каков наилучший способ удаления файла и совершения слияния?
1 ответ
Попробуйте использовать --force
параметр:
git rm --force <file>
Если вы хотите сохранить файл в файловой системе:
git rm --cached <file>
Я попытался
git rm path/to/file
но он говорит файл:needs merge
Вы больше не увидите это сообщение об ошибке с Git 2.23 (3 квартал 0219, семь лет спустя)
"git rm
"разрешение конфликтного пути, используемого для утечки внутреннего сообщения"needs merge
"перед фактическим удалением пути, что сбивало с толку.
Это было исправлено.
См. Commit b2b1f61 (17 июля 2019 г.), автор Junio C Hamano (gitster
).
(Слияние Junio C Hamano -gitster
- в коммите 5e9d978, 25 июля 2019 г.)
rm: решение путем удаления не является событием, заслуживающим предупреждения
При разрешении конфликта на пути в пользу его устранения используется "
git rm
"это стандартный способ сделать это.
Однако пользователя приветствуют"needs merge
"сообщение во время этой операции:$ git merge side-branch $ edit conflicted-path-1 $ git add conflicted-path-1 $ git rm conflicted-path-2 conflicted-path-2: needs merge rm 'conflicted-path-2'
Удаление "
git rm
"выполняется, но непосвященный пользователь может смутить это:
"needs merge
? Так что мне нужно разрешить конфликт, прежде чем я смогу его удалить???"Сообщение пришло от "
update-index--refresh
"который вызывается изнутри, чтобы убедиться"git rm
"знает, какие пути чистые, а какие грязные, чтобы предотвратить удаление путей, измененных относительно индекса без"-f
"вариант.Каким-то образом мы не смогли подавить это сообщение, которое просочилось на поверхность пользовательского интерфейса.
Используйте тот же механизм, что и "
git commit
","git describe
"и т. д., чтобы подавить сообщение.