An upstream branch (not master/default HEAD, if that matters) has a few updates I want, most other differences I don't.
First, I did git fetch -v upstream
rather than pull
since I don't want my local code (in my master branch) modified yet.
Doing git merge upstream/nonmaster
would auto-merge lots of stuff I definitely do not want, removing many local files that never went upstream from my fork (because it's a different author/side project), etc.
Question, how can I get it to a state where git mergetool
would launch my configured GUI (kdiff3) to allow me to choose which edits to keep from panels A(base)/B(mine)/C(theirs) in all changed files (some altogether missing in the upstream, but I definitely want to keep in my branch)?
Currently it returns "No files need merging", although git diff HEAD
shows the differences, which evidently it would auto-merge. I don't want automatic; I want to choose what gets merged/changed, in most cases keeping my stuff the way it was.
I am okay with doing it one single file at a time...how please?
Say, git checkout -m upstream/save -- README.md
as a test file.
Several sources including a (related issue)[How to move a file back into the conflict state after conflict resolution? refer to variants of git checkout -m ...
However, still I face "No files need merging" and the conflict resolution is not forced after all, while git diff HEAD
shows auto-merged changes I would mostly not want.
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
COROLLARY (possibly?)
How in the git piping can we manually make conflict markers, where otherwise git merge
would think it's done its job automatically?