Here is a concrete example: lt-nkiesel:~Platform(nextrelease)% git -c rebase.backend=merge -c pull.rebase=false -c branch.nextrelease.rebase=true pull remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (1/1), 279 bytes | 279.00 KiB/s, done. >From msgit.rnd.metricstream.com:platform/Platform7 d008080d3f2..db4042856da nextrelease -> origin/nextrelease Updating d008080d3f2..db4042856da Fast-forward modules/bpcsfw/src/main/java/com/metricstream/systemi/client/servlet/servant/BaseViewController.java | 54 +++++++++++++++++++++++++----------------------------- modules/bpcsfw/src/main/java/com/metricstream/util/HttpUtils.java | 5 +++++ 2 files changed, 30 insertions(+), 29 deletions(-) Successfully rebased and updated refs/heads/nextrelease. lt-nkiesel:~Platform(nextrelease)% git rev-parse ORIG_HEAD db4042856da8338f183c831fca92cf63da7988bd lt-nkiesel:~Platform(nextrelease)% git rev-parse HEAD db4042856da8338f183c831fca92cf63da7988bd lt-nkiesel:~Platform(nextrelease)% As you can see, git said "Fast-forward" (i.e. no need to rebase) but nevertheless after that pull ORIG_HEAD is identical to HEAD