先commit還是先pull 為什么還有那么多人用SVN?
為什么還有那么多人用SVN?讓我們從結果開始:Git在某些情況下比SVN好,但它不能取代SVN第一輪:Git是一個分布式版本控制系統(tǒng),它可以更適合沒有固定“服務器”的研發(fā)人員。Svn是一個具有固定服務
為什么還有那么多人用SVN?
讓我們從結果開始:Git在某些情況下比SVN好,但它不能取代SVN
第一輪:Git是一個分布式版本控制系統(tǒng),它可以更適合沒有固定“服務器”的研發(fā)人員。Svn是一個具有固定服務器的集中式版本控制系統(tǒng)。但我認為,在某些情況下,分布式管理并不一定比集中式管理好,所以這一輪更為公平。
第2輪:[git的分支非常易于使用,而且非常強大。SVN的分支是一小塊雞排。SVN的分支是svncopy,它復制一個完整的項目。在這一輪中,GIT具有明顯的優(yōu)勢。
第三輪:
提交、更新或合并代碼時經(jīng)常報告錯誤。Git的提示非?!爸艿健?,可以很好地解決錯誤。SVN的提示有點不滿意。Git在這一輪中仍然有優(yōu)勢。
第4輪:
SVN對目錄具有良好的權限控制。它可以根據(jù)目錄進行更新和提交,這有時很有用。Git無法控制目錄的權限。SVN的優(yōu)勢在這一輪是顯而易見的。
例如:
我們公司的研發(fā)人員使用git,藝術和產品使用SVN。藝術和產品通常將需求和資源放入SVN,SVN可以根據(jù)目錄而不是整個項目進行下載。而SVN在windows系統(tǒng)中有一個非常著名的烏龜SVN軟件,有一個中文版本,使用起來非常方便。
Git push,merge,pull,fetch,rebase各自在什么場景下使用?
基本上,順序如下:
修改代碼后,需要先提交
git commit-am“commit message”
然后有兩種方法將您的代碼與遠程存儲庫中的代碼合并
A.git pull。這樣,您就可以直接更新本地存儲庫中的代碼,但問題是可能會有沖突,我不建議這樣做
B.git fetch first Origin(在遠程倉庫中檢索最新的源代碼),然后git merge Origin/Master(將本地代碼與遠程倉庫的最新代碼合并)。如果您的更改與遠程倉庫中的最新代碼沖突,系統(tǒng)會提示您逐一解決沖突,最后從1開始
如果沒有沖突,GIT push origin作為rebase,很容易與merge混淆,因為這兩個命令在結果上是相似的,請看http://git-scm.com/book/zh/ch3-6.html