What is the difference between pull and clone in git?

后端 未结 11 1592
太阳男子
太阳男子 2020-12-04 04:29

What is the difference between doing (after mkdir repo and cd repo):

git init
git remote add origin git://github.com/cmcculloh/repo         


        
相关标签:
11条回答
  • 2020-12-04 04:59

    While the git fetch command will fetch down all the changes on the server that you don’t have yet, it will not modify your working directory at all. It will simply get the data for you and let you merge it yourself. However, there is a command called git pull which is essentially a git fetch immediately followed by a git merge in most cases.

    Read more: https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches#Pulling

    0 讨论(0)
  • 2020-12-04 05:00

    git clone is used for just downloading exactly what is currently working on the remote server repository and saving it in your machine's folder where that project is placed. Mostly it is used only when we are going to upload the project for the first time. After that pull is the better option.

    git pull is basically a (clone(download) + merge) operation and mostly used when you are working as teamwork. In other words, when you want the recent changes in that project, you can pull.

    0 讨论(0)
  • 2020-12-04 05:01

    Hmm, what's missing to see the remote branch "4.2" when I pull, as I do when I clone? Something's clearly not identical.

    tmp$  mkdir some_repo
    
    tmp$  cd some_repo
    
    some_repo$  git init
    Initialized empty Git repository in /tmp/some_repo/.git/
    
    some_repo$  git pull https://github.ourplace.net/babelfish/some_repo.git
      :
    From https://github.ourplace.net/babelfish/some_repo
     * branch            HEAD       -> FETCH_HEAD
    
    some_repo$  git branch
    * master
    

    vs

    tmp$  rm -rf some_repo
    
    tmp$  git clone https://github.ourplace.net/babelfish/some_repo.git
    Cloning into 'some_repo'...
      :
    Checking connectivity... done.
    
    tmp$  cd some_repo
    
    some_repo$  git branch
    * 4.2
    
    0 讨论(0)
  • 2020-12-04 05:05

    git clone URL ---> Complete project or repository will be downloaded as a seperate directory. and not just the changes git pull URL ---> fetch + merge --> It will only fetch the changes that have been done and not the entire project

    0 讨论(0)
  • 2020-12-04 05:06

    They're basically the same, except clone will setup additional remote tracking branches, not just master. Check out the man page:

    Clones a repository into a newly created directory, creates remote-tracking branches for each branch in the cloned repository (visible using git branch -r), and creates and checks out an initial branch that is forked from the cloned repository's currently active branch.

    0 讨论(0)
  • 2020-12-04 05:13

    git clone means you are making a copy of the repository in your system.

    git fork means you are copying the repository to your Github account.

    git pull means you are fetching the last modified repository.

    git push means you are returning the repository after modifying it.

    In layman's term:

    git clone is downloading and git pull is refreshing.

    0 讨论(0)
提交回复
热议问题