Git - конфликт объединения при удалении локального файла, но файл существует в удаленном
Я очень новичок в git и задаюсь вопросом, как я должен идти о слиянии, где в локальном репо я удалил несколько файлов на главной ветке, но эти файлы существуют в ветке удаленного мастера.
После выполнения git -merge он показывает конфликты, которые произошли.
Использование git gui показывает, что локальный файл удален, а файл удаленной ветки имеет содержимое.
Как вы прекращаете конфликты этих файлов?
Есть ли простой способ использования git gui?
Большое спасибо
Ответы
Ответ 1
Вы должны разрешить конфликты по своему усмотрению. Если файл действительно должен быть удален, и вы опубликуете это изменение в начале, удалите его еще раз:
git rm path/to/file
Если файл на самом деле нужно отслеживать, добавьте его (версия в дереве работ будет версией из источника):
git add path/to/file
После выполнения любого из этих действий для разрешения конфликта скопируйте слияние.
Ответ 2
Как добавленный отзыв в дополнение к принятому ответу, в "удалении от нас", если вы хотите увидеть изменения, внесенные в удаленный файл, чтобы вы могли применить эти изменения в другом месте, вы можете использовать:
git diff ...origin/master -- path/to/file
Если это сценарий "удалил их", и вы хотели бы увидеть изменения, чтобы вы могли применить их в другом месте, вы можете использовать:
git diff origin/master... -- path/to/file
Ответ 3
В графическом интерфейсе Git вы выбираете конфликтный файл, а затем щелкните правой кнопкой мыши по основной текстовой области, где показан конфликтный текст.
В появившемся контекстном меню вы можете выбрать "Remote" или перейти в "Локальный". Поэтому, если файл удаленно удален, вы можете выбрать "Remote" для распространения локального удаления и наоборот.
Принял меня на месяц, чтобы понять это... было бы неплохо, если бы Git GUI имел документацию...
Ответ 4
В EGit я также нашел проблемы. Мое решение было:
- Используется представление Git Staging.
- Двойной щелчок по каждому файлу, показанному на неустановленных изменениях, чтобы открыть компаратор
- Нажмите на значок "Скопировать все слева направо"
- Сохранить файл (он исчезнет из неустановленного списка)
Ответ 5
Ответ с лучшим рейтингом фокусируется на способе разрешения конфликта.
Перед этим вы, вероятно, захотите узнать, что удаленное изменилось в локально удаленных файлах.
Для этого вы можете увидеть изменения с помощью:
git diff --base
из https://git-scm.com/docs/git-diff#Documentation/git-diff.txt--1--base
Сравните рабочее дерево с "базовой" версией [...]. Индекс содержит эти этапы только для необъединенных записей, т.е. при разрешении конфликтов.