Git merge "удалено нами"
Я делаю большое слияние.
Многие файлы были удалены из репо в моей ветке, и при выполнении слияния я хочу сохранить это изменение для всех этих файлов.
Также есть некоторые файлы, которые нуждаются в явном объединении, и я намерен использовать git mergetool
для их объединения.
Я хочу сохранить изменения "удалены нами" (т.е. файлы должны быть удалены) для всех удаленных файлов. Другие конфликты слияния я хочу решить самостоятельно.
Есть ли способ, которым я могу сказать git, чтобы удалить удаленные файлы?
Ответы
Ответ 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.