Thread (2 messages) flat view 2 messages, 2 authors, 2016-06-15

Re: git add -p and unresolved conflicts

From: Holger Hellmuth <hidden>
Date: 2016-06-15 22:53:25

Am 28.03.2012 22:50, schrieb Junio C Hamano:
I think Matthieu is not thinking about the "resolve conflicted merge (or
rebase, am) and make a single commit" use case, for which your "pick one
of the sides" makes sense.  His is more about "I like some change in that
unrelated commit---while I have no intention to replay that change as a
whole, I want to use "cherry-pick --no-commit" and pick only the bits out
of the change that are useful for what I am doing" use case.

In such a context, after resolving conflicts in the working tree, "add -p"
would be a good tool to pick hunks in the diff between the HEAD and the
working tree.
Ok. Something like this (which is not really that different from Eriks 
example, so I might still be missing something) ?

git init .
echo "foo" > bar.txt
git add bar.txt
git commit -m.
git checkout -b new
echo "bar" >> bar.txt
git commit -am.
git checkout master
git reset --hard
echo "baz" >> bar.txt
git commit -am.
git cherry-pick --no-commit new
git add -p bar.txt

So he would be interested in keeping his previous working tree version 
(identical to HEAD commit, otherwise cherry-pick fails) for conflicting 
chunks as they (in most cases) don't have anything to do with the chunks 
he is interested in. In this case that is "baz"

Which would always be the "ours" side in any conflicting junks.

That suggests that he could just type '<' respective 'o' whenever a 
conflicting junk comes up as it would be the previous working tree version
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help