принудительно перевести один файл в конфликтующее состояние слияния - PullRequest
1 голос
/ 22 мая 2019

В восходящей ветке (не master / default HEAD, если это имеет значение) есть несколько обновлений, которые я хочу, большинство других различий у меня нет.

Во-первых, я сделал git fetch -v upstream вместо pullтак как я пока не хочу, чтобы мой локальный код (в моей основной ветке) был изменен.

Выполнение git merge upstream/nonmaster автоматически объединит много вещей, которые я определенно не хочу, удалив много локальных файлов, которые никогда не передавались измой форк (потому что это другой авторский / сторонний проект) и т. д.

Вопрос, как я могу получить его в состоянии, когда git mergetool запустит мой сконфигурированный графический интерфейс ( kdiff3 ) дляпозвольте мне выбрать, какие правки оставить на панелях A (базовая) / B (моя) / C (их) во всех измененных файлах (некоторые из них вообще отсутствуют в исходном коде, но я определенно хочу сохранить их в своей ветке)?

В настоящее время возвращается «Нет необходимости объединять файлы», хотя git diff HEAD показывает различия, которые, очевидно, будут автоматически объединяться.Я не хочу автоматического;Я хочу выбрать то, что будет объединено / изменено, в большинстве случаев сохраняя мои вещи такими, какими они были.

Я в порядке, когда делаю это по одному файлу за раз ... как, пожалуйста?Скажем, git checkout -m upstream/save -- README.md как тестовый файл.

Несколько источников, включая (связанную проблему) [ Как перевести файл обратно в состояние конфликта после разрешения конфликта? см. Варианты git checkout -m ...

Тем не менее, я все еще сталкиваюсь с "Нет необходимости объединять файлы" , и разрешение конфликта все равно не принудительно, в то время как git diff HEAD показывает автоматически объединенные изменения, которые я бы больше всего не хотел.

 git status; git diff HEAD

On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   README.md


diff --git a/README.md b/README.md
index 9a7e6a0..1be114b 100644
--- a/README.md
+++ b/README.md
@@ -21,22 +21,23 @@ Setup


-Before you begin, make sure you have `Python3` installed. Robinhood shell only works with python3. Some of the functionality is broken on python2.7 
+Download Robinhood Shell by downloading the zip file ([link](https://github.com/ploch/RobinhoodShell/archive/dev.zip)) OR by using git 

-1. Download Robinhood Shell by downloading the zip file ([link](https://github.com/anilshanbhag/RobinhoodShell/archive/dev.zip)) OR by using git 
+=======

 ```
-git clone https://github.com/anilshanbhag/RobinhoodShell.git
+git clone https://github.com/ploch/RobinhoodShell.git

Следствие (возможно?)

Как в git-конвейере мы можем вручную сделать маркеры конфликта , где в противном случае git merge будет думать, что он выполняет свою работу автоматически

...