Git Pull vs Git Rebase

I'm a noob in Git, and trying to learn the difference between git pull vs git rebase . Can someone provide an example when to use which option since I feel that both serve the same purpose.


git pull and git rebase are not interchangeable, but they are closely connected.

git pull fetches the latest changes of the current branch from a remote and applies those changes to your local copy of the branch. Generally this is done by merging, ie the local changes are merged into the remote changes. So git pull is similar to git fetch & git merge .

Rebasing is an alternative to merging. Instead of creating a new commit that combines the two branches, it moves the commits of one of the branches on top of the other.

You can pull using rebase instead of merge ( git pull --rebase ). The local changes you made will be rebased on top of the remote changes, instead of being merged with the remote changes.

Atlassian as some excellent documentation on merging vs. rebasing.


git-pull - Fetch from and integrate with another repository or a local branch GIT PULL

Basically you are pulling remote branch to your local, example:

git pull origin master

Will pull master branch into your local repository

git-rebase - Forward-port local commits to the updated upstream head GIT REBASE

This one is putting your local changes on top of changes done remotely by other users. For example:

  • You have committed some changes on your local branch for example called SOME-FEATURE
  • Your friend in the meantime was working on other features and he merged his branch into master
  • Now you want to see his and your changes on your local branch. So then you checkout master branch:

    git checkout master
    

    then you can pull:

    git pull origin master
    

    and then you go to your branch:

    git checkout SOME-FEATURE
    

    and you can do rebase master to get lastest changes from it and put your branch commits on top:

    git rebase master
    

    I hope now it's a bit more clear for you.

    链接地址: http://www.djcxy.com/p/45090.html

    上一篇: Git:合并后面的变化

    下一篇: Git Pull vs Git Rebase