git-fetch - git clone command - Какая разница между "git pulch" и "git fetch"?

git clone to folder / git / version-control / git-pull

В чем разница между git pull и git fetch ?

Jonathan Leffler



Answer #1

Мне нравится иметь некоторое визуальное представление о ситуации,чтобы понять эти вещи.Может быть,другие разработчики тоже хотели бы это увидеть,так что вот мое дополнение.Я не совсем уверен,что все правильно,так что,пожалуйста,прокомментируйте,если найдете какие-нибудь ошибки.

                                         LOCAL SYSTEM
                  . =====================================================    
================= . =================  ===================  =============
REMOTE REPOSITORY . REMOTE REPOSITORY  LOCAL REPOSITORY     WORKING COPY
(ORIGIN)          . (CACHED)           
for example,      . mirror of the      
a github repo.    . remote repo
Can also be       .
multiple repo's   .
                  .
                  .
FETCH  *------------------>*
Your local cache of the remote is updated with the origin (or multiple
external sources, that is git's distributed nature)
                  .
PULL   *-------------------------------------------------------->*
changes are merged directly into your local copy. when conflicts occur, 
you are asked for decisions.
                  .
COMMIT            .                             *<---------------*
When coming from, for example, subversion, you might think that a commit
will update the origin. In git, a commit is only done to your local repo.
                  .
PUSH   *<---------------------------------------*
Synchronizes your changes back into the origin.