On Wed, 26 Jun 2013 11:18:58 +0530
Shouvik <[email protected]> wrote:
> > > Yes, pass the "--no-commit" option to `git merge` and it won't
> > > automatically record a merge commit but will rather leave the
> > > changes staged in the index. Then you'll be able to unstage the
> > > changes made to index.php by running
> > >
> > > $ git reset index.php
> > >
> > > After that, commit as usually.
[...]
> Ok so please confirm if the following steps are okay (assuming that
> currently I am in *bugfix* branch)
No, one crucial step is missing -- see below.
> >git commit -m "major bug fixing" register.php login.php index.php
> >git checkout master
> >git merge --no-commit bugfix
Notice that here we explicitly told Git to *not* record a merge commit,
just leave in the index (and the work tree) whatever changes the merge
operation did to them.
> >git reset index.php
At this point run `git status`, `git diff --cached` and confirm for
yourself you're okay with the changes about to be committed. This is a
good habit you're really advised to develop -- do not ever commit
blindly (unless you're absolutely sure).
> >git push origin master
Too early: you have not committed the changes introduced by the
merge operation yet! Hence there's supposedly nothing to push.
Now please scroll back to the quote from my original message above,
which reads "After that, commit as usually"...
Note that this case is really not rocket science. For some reason, you
appear to perceive it as some sort of black magic which it really isn't:
1) Any merge operation which does not resolve in fast-forwarding the
receiving branch, -- and this only ever happens if the branch being
merged ("the other side") completely contains the receiving branch
in its history, so there's no point in attempting a true merge --
results in a new commit which a) records all the changes introduced
by the merge, and b) refers to all the branches which participated
in merging.
2) Since you want to tweak the result of the merge operation (drop
the changes which it does to one file) you explicitly tell Git to
not auto-commit the result. Consequently, you have to commit the
(tweaked) state by hand.
Please, don't try to *memorize* what to do, try hard to understand
*what* each of the steps does, and why -- you have all the information.
If you feel lost with what `git merge`, `git reset` and `git commit` do,
it's time to read the book and study other pointers (like that article
on `git reset` I linked to in my first reply to this thread).
--
You received this message because you are subscribed to the Google Groups "Git
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.