Подтвердить что ты не робот

Git merge "удалено нами"

Я делаю большое слияние. Многие файлы были удалены из репо в моей ветке, и при выполнении слияния я хочу сохранить это изменение для всех этих файлов. Также есть некоторые файлы, которые нуждаются в явном объединении, и я намерен использовать git mergetool для их объединения.

Я хочу сохранить изменения "удалены нами" (т.е. файлы должны быть удалены) для всех удаленных файлов. Другие конфликты слияния я хочу решить самостоятельно.
Есть ли способ, которым я могу сказать git, чтобы удалить удаленные файлы?

4b9b3361

Ответ 1

Вот частичное решение:

  • Разрешить все конфликты без удаленных слияний вручную, которые вы должны делать в любом случае

  • Введите git diff --name-only --diff-filter=U, чтобы получить список всех оставшихся файлов в конфликте. Эти файлы должны быть теми, которые вы хотите удалить. Сохраните список удаленных файлов как filesToRemove.txt

  • Затем выполните cat filesToRemove.txt | xargs git rm, чтобы удалить все файлы.

Ответ 2

Исправление одной строки:

git diff --name-only --diff-filter=U | xargs git rm

Ответ 3

Вы можете решить эту проблему, сохранив отредактированные файлы, добавив их обратно и сохранив их еще раз:

git add .

или же

git add -A

Затем совершить

git commit

Если вы хотите разрешить конфликт, удалив файлы, вам нужно запустить git rm вместо git add.

См.: Разрешение конфликта слияния из командной строки

Ответ 4

Я оставлю вопрос - потому что я уверен, что есть хороший ответ - это то, что я сделал за это время:

  • Сделайте git status, чтобы просмотреть список удаленных файлов (1082) и номер, в котором были конфликты слияния (3)
  • В текстовом редакторе вручную отредактируйте 3 файла с конфликтами слияния, а затем сделайте git add на них
  • Создайте текстовый файл с линией с буквой "d" в каждой строке и ничего больше для каждого из (1082) файлов, которые были удалены (d.txt)
  • run git mergetool < d.txt

Не элегантный, но быстрее, чем нажатие буквы "d" и введите 1082 раза

Ответ 5

Я тоже заметил

abc.txt: необходимо объединить

при попытке

git rm abc.txt

после выбора вишни и просмотра файла в состоянии "удалено нами".

Я получил решающее удаление, выполнив следующие действия:

git add abc.txt
rm abc.txt
git add abc.txt

это добавляет abc.txt в область подготовки (по сути, воссоздавая файл "удален нами". (который разрешает конфликтный статус)

затем удаляет файлы из файловой системы

затем добавляет к заявленной области факт, что файл теперь исчез.

Вероятно, существуют трюки с оболочкой для запуска этих трех команд в вашем наборе файлов 1000+ без особой головной боли.

возможно, есть более эффективные способы справиться с этим, но поскольку git rm abc.txt не работал так, как мы ожидали для наших ситуаций, я подумал, что поделюсь альтернативным набором команд, которые, кажется, работают без использования mergetool.