在git
中拉取和使用最新的更改到我的本地存儲庫我使用git pull
。爲什麼我需要hg更新後,在gg中,而在git中,我只做git pull
在hg
,我也用hg pull
但隨後打印
運行「汞更新」,以獲得工作副本
我跑hg update
但我不知道爲什麼是git
這種差異?
在git
中拉取和使用最新的更改到我的本地存儲庫我使用git pull
。爲什麼我需要hg更新後,在gg中,而在git中,我只做git pull
在hg
,我也用hg pull
但隨後打印
運行「汞更新」,以獲得工作副本
我跑hg update
但我不知道爲什麼是git
這種差異?
其他答案實際上並沒有回答這個問題,即:爲什麼Git和Mercurial不一樣?有沒有哲學上的差異?
在Mercurial中,pull
與push
相反:它將本地回購與遠程回購同步而不觸及工作副本。所以它更一致。
在GIT中,pull
是fetch
加上merge
,或pull
加在水銀方面具有update
。通常這是你想要的。所以它更有效率。
Distributed Version Control University talk在4-minute mark上有一張幻燈片,清楚地表明瞭Mercurial的工作方式。邁克爾·恩斯特的Version control concepts and best practices也有類似的圖(下面附帶):
因爲git pull
內部執行git fetch
和git merge
,而hg pull
只是git fetch
所做的。改爲做hg pull -u
。另見command equivalence table。
要獲得等效的git功能,請啓用獲取Mercurial擴展(與Mercurial分發捆綁),請參閱fetch extension。它將執行一個hg pull -u
。
是否有任何理論的差異(如在方法是不同的),其下方還是僅僅是一個詞彙的區別? –
嚴格的詞彙。 Git fetch和mercurial pull可以做同樣的事情。 Mercurial fetch和git pull做同樣的事情。 –
@Alex這取決於你的意思是「接近」,你看什麼水平。 'hg pull'等於'正常用戶應該關心的任何級別的'git fetch'。但是Mercurial和Git當然會在內部使用不同的數據結構,所以在某些時候在實現細節上存在技術差異。如果你真的關心它,只需比較[hg pull](http://www.selenic.com/mercurial/hg.1.html#pull)和[git fetch](http:// git- scm.com/docs/git-fetch.html)。 Git的措辭更加技術性和冗長,但最終它是一樣的。 – sschuberth