使用git在兩台機器間同步代碼


前言
本文記錄了如何使用git來在兩台機器間同步代碼,一台機器A是本地linux,另一台機器B是騰訊雲Linux。

需求描述
有一份代碼放在linux機器A上,我需要在另一台機器B上查看並編輯它,為了方便兩台機器之間相互同步修改后的代碼,git相比於scp等手動操作的好處:

1. 自動檢查到修改的文件,不要自己去找改了那些文件

2. 附帶版本管理功能

3. 便於擴展:有了第三台或更多機器的話,自己clone一份即可

步驟
1. 在存放原始代碼的機器上,比如A,假設代碼目錄為:/codes/project,

cd /codes/project

# 創建git代碼倉庫
git init
git add .
git commit -m "create project"

# 切換到project父目錄,創建一個project-bare目錄
cd ..
mkdir project-bare
cd project-bare

# 從原始代碼倉庫創建bare倉庫,作為“中央”倉庫,其他機器(包括本機的原始倉庫)往這里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

 


2. 在機器B上操作:
假設通過ssh來連接機器A

git clone ssh://<username>@<ip>:<port>/codes/project-bare/project-bare.git ./project


clone下來之后,在機器B上做修改,然后commit,push之后,在機器A上就可以pull到了。反之在機器A的project目錄做修改,commit,push之后,在機器B上也能pull下來了。

若要再添加一台開發機,重復第2步,clone操作即可。

遇到的坑
注意第1步中創建 project-bare.gti 的必要性

如果B直接clone A上的project倉庫,並且將其添加為remote,那么在執行git push操作的時候是會報錯的,因為此時B不知道A是否也在對工作副本進行了修改,直接push過去可能造成working copy的沖突,而創建的project-bare倉庫只記錄倉庫信息不保存working copy,作為一個中央倉庫使用。

 


————————————————
版權聲明:本文為CSDN博主「elloop」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/elloop/article/details/54898512


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM