從字面意思也可以了解,都是往下拉代碼,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 表示目前分之自動與唯一一個追蹤分之進行合并。
【當你用心寫完每一篇部落格之後,你會發現它比你用代碼實作功能更有成就感!】