Git pull VS git fetch git rebase

De openkb
Aller à : Navigation, rechercher

Sommaire

Questions

http://stackoverflow.com/questions/292357/whats-the-difference-between-git-pull-and-git-fetch http://stackoverflow.com/questions/292357/whats-the-difference-between-git-pull-and-git-fetch

But what is the difference between git pull VS git fetch + git rebase?

Answers

It should be pretty obvious from your question that you re actually just asking about the difference between git merge and git rebase.

So let s suppose you re in the common case - you ve done some work on your master branch, and you pull from origin s, which also has done some work. After the fetch, things look like this:

- o - o - o - H - A - B - C (master)
               
                P - Q - R (origin/master)

If you merge at this point (the default behavior of git pull), assuming there aren t any conflicts, you end up with this:

- o - o - o - H - A - B - C - X (master)
                            /
                P - Q - R --- (origin/master)

If on the other hand you did the appropriate rebase, you d end up with this:

- o - o - o - H - P - Q - R - A  - B  - C  (master)
                          |
                          (origin/master)
  The content of your work tree should end up the same in both cases; you ve just created a different history leading up to it   . The rebase rewrites your history, making it look as if you had committed on top of origin s new master branch (R), instead of where you originally committed (H). You should never use the rebase approach if someone else has already pulled from your master branch. 

Finally, note that you can actually set up git pull for a given branch to use rebase instead of merge by setting the config parameter branch.<name>.rebase to true. You can also do this for a single pull using git pull --rebase.

Source

License : cc by-sa 3.0

http://stackoverflow.com/questions/3357122/git-pull-vs-git-fetch-git-rebase

Related

Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Outils