git clone與git pull區別


最近一直焦慮換工作與面試,自然面試過程中也被問到了很多問題,在一家公司中,被問到了git相關的知識。
面試官提出了git clone 與 git pull有什么區別。由於自己對git的掌握情況不是特別深入,感覺瞬間被問蒙圈一樣。后來,查了相關的文檔,看了一些文章,自己有了一丁點的理解,覺得應該寫下來。
從字面意思也可以理解,都是往下拉代碼,git clone是克隆,git pull 是拉。
但是,也有區別:
從遠程服務器克隆一個一模一樣的版本庫到本地,復制的是整個版本庫,叫做clone.(clone是將一個庫復制到你的本地,是一個本地從無到有的過程)
從遠程服務器獲取到一個branch分支的更新到本地,並更新本地庫,叫做pull.(pull是指同步一個在你本地有版本的庫內容更新的部分到你的本地庫)
git pull相當於是從遠程獲取最新版本並merge(合並)到本地 git pull = git fetch + git merge,git fetch更安全一些
git clone是遠程操作的第一步,通常是從遠程主機克隆一個版本庫,eg:$ git clone ## 該命令會在本地主機生成一個目錄,與遠程主機的版本庫同名,如果要是制定不同的目錄名,可以將目錄名作為git clone 命令的第二個參數。eg:$ git clone #版本庫網址# #本地目錄名# git clone支持多種協議,除了http(s),還有ssh,git,本地協議。
git pull 作用是,取回遠程主機某個分支的更新,再與本地的指定分支合並。它的完整格式稍稍有點復雜。eg:$ git pull ##遠程主機(origin) #遠程分之(next)#:#本地分之(master)#
如果遠程分支是與當前分支合並,則冒號后面的部分可以省略。eg:$ git pull #遠程主機(origin)#  #遠程分之(next)# 相當於1. $ git fetch origin 2.$git merge origin/next
在某些場合,git會自動在本地和遠程分之之間,建立一種追蹤關系。比如,在git clone 的時候,所有本地分之默認與遠程主機的同名分之,建立追蹤關系,也就是,本地的master分之自動“追蹤”origin/master分之。git 可以手動建立追蹤, git branch --set-upstream master origin/next --->指定master分之追蹤到origin/next。
如果當前分支只有一個追蹤分支,連遠程主機名都可以省略。$ git pull 表示當前分之自動與唯一一個追蹤分之進行合並。

原文鏈接:https://blog.csdn.net/zhou_xiaomiao/article/details/53185712


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM