Teach 'git pull' about --rebase
When calling 'git pull' with the '--rebase' option, it performs a fetch + rebase instead of a fetch + merge. This behavior is more desirable than fetch + pull when a topic branch is ready to be submitted and needs to be update. fetch + rebase might also be considered a better workflow with shared repositories in any case, or for contributors to a centrally managed repository, such as WINE's. As a convenience, you can set the default behavior for a branch by defining the config variable branch.<name>.rebase, which is interpreted as a bool. This setting can be overridden on the command line by --rebase and --no-rebase. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
d25430c5f8
commit
cd67e4d46b
@ -53,4 +53,26 @@ test_expect_success 'the default remote . should not break explicit pull' '
|
||||
test `cat file` = modified
|
||||
'
|
||||
|
||||
test_expect_success '--rebase' '
|
||||
git branch to-rebase &&
|
||||
echo modified again > file &&
|
||||
git commit -m file file &&
|
||||
git checkout to-rebase &&
|
||||
echo new > file2 &&
|
||||
git add file2 &&
|
||||
git commit -m "new file" &&
|
||||
git tag before-rebase &&
|
||||
git pull --rebase . copy &&
|
||||
test $(git rev-parse HEAD^) = $(git rev-parse copy) &&
|
||||
test new = $(git show HEAD:file2)
|
||||
'
|
||||
|
||||
test_expect_success 'branch.to-rebase.rebase' '
|
||||
git reset --hard before-rebase &&
|
||||
git config branch.to-rebase.rebase 1 &&
|
||||
git pull . copy &&
|
||||
test $(git rev-parse HEAD^) = $(git rev-parse copy) &&
|
||||
test new = $(git show HEAD:file2)
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Reference in New Issue
Block a user