使用git在两台机器间同步代码
來源:http://blog.csdn.net/elloop/article/details/54898512
前言
本文記錄了如何使用Git來在兩臺機(jī)器間同步代碼,一臺機(jī)器是Linux,另一臺是windows。
需求描述
有一份代碼放在linux機(jī)器A上,我需要在另一臺機(jī)器B上查看并編輯它,為了方便兩臺機(jī)器之間相互同步修改后的代碼,git相比于scp等手動操作的好處:
1. 自動檢查到修改的文件,不要自己去找改了那些文件
2. 附帶版本管理功能
3. 便于擴(kuò)展:有了第三臺或更多機(jī)器的話,自己clone一份即可
步驟
1. 在存放原始代碼的機(jī)器上,比如A,假設(shè)代碼目錄為:/codes/project,
cd /codes/project# 創(chuàng)建git代碼倉庫 git init git add . git commit -m "create project"# 切換到project父目錄,創(chuàng)建一個project-bare目錄 cd .. mkdir project-bare# 從原始代碼倉庫創(chuàng)建bare倉庫,作為“中央”倉庫,其他機(jī)器(包括本機(jī)的原始倉庫)往這里push,從這里pull git clone --bare ../project ./project-bare.git# 回到project倉庫目錄 cd ../project# 把project-bare添加為remote, git remote add origin ../project-bare.git git branch --set-upstream-to=origin/master master- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 212. 在其它機(jī)器上,比如B:
假設(shè)通過ssh來連接機(jī)器A
git clone ssh://<username>@<ip>:<port>:/codes/project-bare/project-bare.git ./project- 1
- 1
clone下來之后,在機(jī)器B上做修改,然后commit,push之后,在機(jī)器A上就可以pull到了。反之在機(jī)器A的project目錄做修改,commit,push之后,在機(jī)器B上也能pull下來了。
若要再添加一臺開發(fā)機(jī),重復(fù)第2步,clone操作即可。
遇到的坑
注意第1步中創(chuàng)建 project-bare.gti 的必要性
如果B直接clone A上的project倉庫,并且將其添加為remote,那么在執(zhí)行g(shù)it push操作的時候是會報錯的,因為此時B不知道A是否也在對工作副本進(jìn)行了修改,直接push過去可能造成working copy的沖突,而創(chuàng)建的project-bare倉庫只記錄倉庫信息不保存working copy,作為一個中央倉庫使用,詳情參考bare倉庫和non-bare倉庫的區(qū)別這篇文章
作者水平有限,對相關(guān)知識的理解和總結(jié)難免有錯誤,還望給予指正,非常感謝!
在這里也能看到這篇文章:github博客,CSDN博客, 歡迎訪問
總結(jié)
以上是生活随笔為你收集整理的使用git在两台机器间同步代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php中try catch捕获异常实例详
- 下一篇: 23款思域混动先锋版后视镜可手动折叠吗?