2013-10-09 48 views

回答

40

其他答案實際上並沒有回答這個問題,即:爲什麼Git和Mercurial不一樣?有沒有哲學上的差異?

在Mercurial中,pullpush相反:它將本地回購與遠程回購同步而不觸及工作副本。所以它更一致。

在GIT中,pullfetch加上merge,或pull加在水銀方面具有update。通常這是你想要的。所以它更有效率。

Distributed Version Control University talk4-minute mark上有一張幻燈片,清楚地表明瞭Mercurial的工作方式。邁克爾·恩斯特的Version control concepts and best practices也有類似的圖(下面附帶):

Distributed version control

17

因爲git pull內部執行git fetchgit merge,而hg pull只是git fetch所做的。改爲做hg pull -u。另見command equivalence table

+0

是否有任何理論的差異(如在方法是不同的),其下方還是僅僅是一個詞彙的區別? –

+2

嚴格的詞彙。 Git fetch和mercurial pull可以做同樣的事情。 Mercurial fetch和git pull做同樣的事情。 –

+0

@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

2

要獲得等效的git功能,請啓用獲取Mercurial擴展(與Mercurial分發捆綁),請參閱fetch extension。它將執行一個hg pull -u

相關問題