git - конфликт слияния, когда локальный удален, но файл существует в удаленном - PullRequest
108 голосов
/ 01 декабря 2010

Я очень новичок в git и удивляюсь, как мне выполнить слияние, когда в локальном репо я удалил несколько файлов в основной ветви, но эти файлы существуют в удаленной основной ветви.

После выполненияgit-merge показывает конфликты, которые произошли.

Используя git gui, он показывает, что локальный файл удален, а в файле удаленной ветви есть содержимое.

Как остановить эти файлыбыть в конфликте?Есть ли простой способ использования git gui?

Большое спасибо

Ответы [ 4 ]

151 голосов
/ 01 декабря 2010

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

git rm path/to/file

Если файл действительно должен отслеживаться, добавьте его (версия врабочим деревом будет версия от источника):

git add path/to/file

После выполнения любого из них для разрешения конфликта совершите слияние.

26 голосов
/ 19 ноября 2015

В качестве дополнительного совета в дополнение к принятому ответу в «удалено нами» , если вы хотите просмотреть изменения, которые были внесены в удаленный файл, чтобы вы могли применить эти изменения в другом месте вы можете использовать:

git diff ...origin/master -- path/to/file

Если это «удаленный ими» сценарий , и вы хотели бы увидеть изменения, чтобы применить их в другом месте, вы можете использовать:

git diff origin/master... -- path/to/file
9 голосов
/ 27 января 2011

В графическом интерфейсе Git вы выбираете конфликтующий файл и затем щелкните правой кнопкой мыши основную текстовую область, где отображается конфликтующий текст.

В появившемся контекстном меню вы можете выбрать «Удаленно»"или перейдите с" Local ".Поэтому, если файл удален удаленно, вы можете выбрать «Удаленно», чтобы распространять удаление локально, и наоборот.

У меня ушел месяц на то, чтобы понять это ... было бы неплохо, если бы Git GUI действительнодокументация ...

0 голосов
/ 17 июля 2014

В EGit я тоже обнаружил проблемы.Мое решение было:

  • Использовал представление Git Staging.
  • Двойной щелчок по каждому файлу, показанному при внесении изменений, чтобы открыть компаратор
  • Нажмите на значок «Копировать все слева направо»
  • Сохранить файл (он исчезнет изнеустановленный список)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...