On Mon, 2015-05-11 at 09:36 -0400, Darryl L. Pierce wrote:
> On Mon, May 11, 2015 at 09:23:27AM -0400, Darryl L. Pierce wrote:
> > A request for all, please avoid doing merge commits on your Git repo.
> > When these hit the shared repo it can cause Git to try and "fix" [1] the
> > commit when rebasing.
> >
> > The way I do commits with Git is to rebase my work branch on master
> > before merging it into master. That way it's a true merge and not a
> > merge commit. To do this:
> >
> > 1. Rebase your work branch:
> >
> > task-branch $ git rebase -i master
> >
> > 2. Fix any merge issues on the work branch until you get a clean set of
> > commits.
> > 3. Switch to master and then merge your branch:
> >
> > task-branch $ git checkout master
> > master-branch $ git merge task-branch
Another tip, when merging to master use:
master-branch $ git merge --ff-only task-branch
That will refuse to merge unless the merge is a "fast-forward", which is
the simple "copy my commits to the end of trunk" that we want. It is
just a safety check - if you do what Darryl says it has no effect, but
if you forgot to rebase properly git will complain instead of creating
an unintended merge commit.
>
> http://mcpierce.blogspot.com/2012/08/git-fixup-and-autosquash.html
>
autosquash! Lovely! Git is full of nice surprises.