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

Re: The --no-commit blues

From: Sergio <hidden>
Date: 2016-06-15 22:43:17

Brian L. Troutwine <goofyheadedpunk <at> gmail.com> writes:
I've got two branches, one which I commit to quite frequently and another only 
periodically, call them inward and outward. Inward is where I do my work, 
outward tracks an SVN repository. I'd like to merge inward to outward without 
committing the merge so that I may provide a commit message appropriate for 
checking in to the SVN repo. 

`git merge --no-commit inward' from branch outward, I thought, should do it. 
Performing a `git status' and a `git log' directly afterward seem to indicate 
that the merge was committed. `git commit' insists the branch is now up to 
date.
If you want the "whole" set of changes from inward to appear in outward as a
/single/ commit with an appropriate commit message, probably you want to use
also the --squash option of git merge.

Otherwise, git will preserve the "structuring" of the history in many commits.
This means that:

- if outward does not need any real merge (because it only needs to be advanced
to a newer status and not to join some changes of its own with changes from
inward), git merge will make a "fast-forward". In other words, you will see
outward becoming up to date without the need of any merge-commit at all. BTW
that is why --no-commit appears to have no effect in this case: there wouldn't
be any merge commit in any case. 

- if outward needs a real merge, then git merge will set up everything up to the
point of making the merge commit.  Then, depending on the presence of the
--no-commit option it will or will not make the actual commit.  
Am I going about this the wrong way? What does --no-commit mean, if I am?

(Also, I asked this on #git earlier. If anyone happens to idle there, pardon 
me for re-posting this so quickly. I've got terrible lag this morning, enough 
to time out frequently.)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help