Ответ 1
Попробуйте использовать параметр --force
:
git rm --force <file>
Если вы хотите сохранить файл в файловой системе:
git rm --cached <file>
Я объединился в изменениях из другой ветки, но у меня возникают конфликты, потому что файл удален на удаленной ветке, но имеет изменения в локальной ветке.
Я хотел бы удалить файл - я попробовал git rm path/to/file
, но он говорит file: needs merge
. Каков наилучший способ удаления файла и фиксации слияния?
Попробуйте использовать параметр --force
:
git rm --force <file>
Если вы хотите сохранить файл в файловой системе:
git rm --cached <file>
Я попытался
git rm path/to/file
, но там написано:needs merge
Вы больше не увидите это сообщение об ошибке с Git 2.23 (Q3 0219, семь лет спустя)
"git rm
" разрешает конфликтующий путь, используемый для утечки внутреннего сообщения
"needs merge
" перед тем, как фактически удалить путь, который сбивал с толку.
Это было исправлено.
Смотрите коммит b2b1f61 (17 июля 2019 г.) от Джунио С. Хамано (gitster
).
(Merged by Junio C Hamano -- [TG45] -- in commit 5e9d978, 25 Jul 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
" и т.д. Для подавить сообщение.