Я очень новичок в git и задавался вопросом, как мне сделать слияние, когда в локальном репо я удалил несколько файлов в главной ветке, но эти файлы существуют в удаленной главной ветке.
После выполнения git-merge он показывает возникшие конфликты.
Используя git gui, он показывает, что локальный файл удален, а файл удаленной ветки имеет содержимое.
Как предотвратить конфликт этих файлов? Есть ли простой способ использовать git gui?
Большое спасибо
Ответы:
Вы должны разрешать конфликты так, как считаете нужным. Если файл действительно предполагается удалить, и вы будете публиковать это изменение в источнике, удалите его снова:
Если файл действительно нужно отслеживать, добавьте его (версия в дереве работ будет версией из источника):
После выполнения любого из этих действий для разрешения конфликта зафиксируйте слияние.
источник
cd
в каталог иgit rm *.ext
. Ваша оболочка (не Git) расширяется*.ext
до всех совпадающих имен файлов.git rm
не имеет-i
флага.git rm *-suffix.ext
? Такая же разница. Если у вас возникли проблемы с пониманием того, как использовать подстановочные знаки оболочки, спросите на unix.stackexchange.com. Если вы точно знаете, что то, что вы хотите, нельзя сделать с помощью подстановки, используйтеrm -i
и нажмите,git add -u
чтобы выбрать удаления.-s recursive -X ours
зачем еще надоgit rm
иgit add
?В качестве дополнительного совета в дополнение к принятому ответу в разделе «удалено нами» , если вы хотите увидеть изменения, внесенные в удаленный файл, чтобы вы могли применить эти изменения в другом месте, которое вы можете использовать:
Если это сценарий «удалено ими» , и вы хотите увидеть изменения, чтобы применить их в другом месте, вы можете использовать:
источник
git diff mybranch@{1}...origin/master -- path/to/file
git diff --base
(см. Мой другой ответ).В графическом интерфейсе Git вы выбираете конфликтующий файл, а затем щелкаете правой кнопкой мыши в основной текстовой области, где отображается конфликтующий текст.
В появившемся контекстном меню вы можете выбрать «Удаленный» или «Локальный». Поэтому, если файл удален удаленно, вы можете выбрать «Удаленный», чтобы распространить удаление локально, и наоборот.
Мне потребовался месяц, чтобы понять это ... было бы хорошо, если бы у Git GUI действительно была документация ...
источник
Лучший ответ фокусируется на способе разрешения конфликта.
Перед этим вы, вероятно, захотите узнать, что пульт дистанционного управления изменил в локально удаленных файлах.
Для этого вы можете увидеть изменения с помощью:
Из https://git-scm.com/docs/git-diff#Documentation/git-diff.txt--1--base
источник
git diff --base
stackoverflow.com/a/60484874/470749В EGit я тоже обнаружил проблемы. Мое решение было:
источник
Как указано в этом полезном ответе на связанный вопрос , вы можете использовать его
git mergetool
для запуска диалогового окна, в котором вы можете выбрать, хотите ли вы использовать измененную или удаленную версию файла (ов).источник