Git Branching and You

Merging without fear

  1 Merge branch 'master' of /Users/ddcapotter/temp/gitpres/git-playground-remote
  2
  3 # Please enter a commit message to explain why this merge is necessary,
  4 # especially if it merges an updated upstream into a topic branch.
  5 #
  6 # Lines starting with '#' will be ignored, and an empty message aborts
  7 # the commit.
commit 42b6322d5a3707b1492a859d71462cebbde7706b
Merge: dc18666 101cc36
Author: Andrew Potter <apottere@gmail.com>
Date:   Thu Oct 22 10:52:41 2015 -0400

    Merge branch 'master' of /Users/ddcapotter/temp/gitpres/git-playground-remote

Merge Commit

$ git revert -m 1 HEAD
[master e095e7f] Revert "Merge branch 'master' of /Users/ddcapotter/temp/gitpres/git-playground-remote"
 1 file changed, 1 insertion(+), 1 deletion(-)
commit e095e7f45d208c44442471beef5b5e4d642ccbdc
Author: Andrew Potter <apottere@gmail.com>
Date:   Thu Oct 22 11:00:49 2015 -0400

    Revert "Merge branch 'master' of /Users/ddcapotter/temp/gitpres/git-playground-remote"

    This reverts commit 42b6322d5a3707b1492a859d71462cebbde7706b, reversing
    changes made to dc1866636ae23af92adf0b433662e5780a7ff4f8.

Revert Merge

The Catch

"fast-forward" merge does NOT create a merge commit!

Solution: Never fast-forward

# In my ~/.gitconfig
[merge]
    ff = false


# Or in my terminal
$ git config --global --add merge.ff false
$ git merge feature/things # This will be a fast-forward
Merge made by the 'recursive' strategy.
 other | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 other

$ git show
commit f6a9382a3564aee47531c43e933aa8398b146d55
Merge: 8feefb3 1dda31a
Author: Andrew Potter <apottere@gmail.com>
Date:   Thu Oct 22 12:14:57 2015 -0400

    Merge branch 'feature/things'

... Which creates problems

"git pull" does a "git fetch" and a "git merge"

Solution: git pull with rebase

# In my ~/.gitconfig
[pull]
    rebase = true
[rebase]
    stat = true


# Or in my terminal
$ git config --global --add pull.rebase true
$ git config --global --add rebase.stat true
Unpacking objects: 100% (3/3), done.
From /Users/ddcapotter/temp/gitpres/git-playground-remote
   e095e7f..8feefb3  master     -> origin/master
 README.md | 1 +
 1 file changed, 1 insertion(+)
First, rewinding head to replay your work on top of it...
Fast-forwarded master to 8feefb373f323c3eaf94db1093bd2785a76fcdf1.
Made with Slides.com