How can I pull all remote changes with rebase instead of merge?

后端 未结 4 1120
臣服心动
臣服心动 2020-12-28 15:23

I can pull changes using git pull, but it merges my local commits. Is there a git rebase equivalent with which I can pull in remote changes?

相关标签:
4条回答
  • 2020-12-28 16:03

    To change default behavior from merge to rebase In git >= 1.7.9:

    git config --global pull.rebase true

    remove global if you want to apply for current repo only

    0 讨论(0)
  • 2020-12-28 16:06

    Yes you can git pull --rebase.

    You can also set that to be the default pull behaviour when you track a branch with git config branch.autosetuprebase always. Replace "always" with "remote" or "local" if you want to do it to those specific types of branches that you're tracking.

    Now all you have to do is git pull.

    If for some reason you want to do a merge, you can do git pull --no-rebase.

    Hope this helps.

    UPDATE: see comments below for how to do this on existing branches.

    0 讨论(0)
  • 2020-12-28 16:15

    Instead of autosetuprebase, you can use the pull.rebase config option to change the behavior for every git pull (instead of only newly-created branches):

    [pull]
        rebase = true
    

    The difference is this will apply to non-tracking branches and any branches you had set up before enabling autosetuprebase. So if you really want pull --rebase to always be the default, pull.rebase is the way to go!

    0 讨论(0)
  • 2020-12-28 16:17

    I usually use a fetch/rebase combination so my current (local) work stays at the top:

    git fetch
    git rebase origin/develop
    
    0 讨论(0)
提交回复
热议问题