我是Mercurial用戶。我正在遷移到git,原因是我不會介入。git遠程集羣和筆記本電腦設置爲一個開發人員 - 爲什麼一個「裸」存儲庫?
我主要是一個開發團隊,雖然未來有合作者的可能性。我過去曾使用過Mercurial來跟蹤變化,並管理筆記本電腦以及大學集羣上相同代碼庫的開發。
在Mercurial中,爲了使我的筆記本電腦和集羣保持最新狀態,我會在筆記本電腦上創建一個存儲庫,將其克隆到集羣,然後從(如果我一直在使用筆記本電腦)或拉到(如果我一直在集羣上工作)我的筆記本電腦,並根據需要合併。
我已經成功將我的mercurial存儲庫遷移到git。從網絡上閱讀許多git的討論,它看起來像那麼我(意譯http://thelucid.com/2008/12/02/git-setting-up-a-remote-repository-and-doing-an-initial-push/)
ssh [email protected]_cluster.edu
mkdir my_project.git
cd my_project.git
git init --bare
git update-server-info # I skipped this
exit
,然後在我的筆記本電腦:
cd my_project
git remote add origin [email protected]_cluster.edu:my_project.git
git push -u origin master
我的問題,然後:
這似乎更比Mercurial中的複雜。這真的是「最佳實踐」方法嗎?我認爲分佈式源代碼控制(DSC)的整個想法是,存儲庫直接相互交流,並且合併很容易。爲什麼「中間人」使用git「裸」存儲庫的方法?看來這樣會導致必須在遠程計算機上維護兩個目錄(裸存儲庫和正在運行的存儲庫),並且每次需要從一個平臺切換到另一個平臺時,執行兩次「事務」。也就是說,每檯筆記本電腦集羣交換機都需要推送到遠程裸倉庫,然後從遠程裸倉庫中提取數據,在這之前我只需按下(如果在我的筆記本電腦上完成)或拉出(如果從我的筆記本電腦上啓動)。
我希望我不會邀請Mercurial/Git的火焰戰爭,我只是想用這個理解git哲學。