git设置用于2台计算机之间的备份和同步

use*_*ser 5 git version-control backup

我是git的新手.需要一些建议才能知道我的设置是否正确.请阅读以下内容:

我在我的开发计算机上使用git进行2个单独的项目,并希望备份USB驱动器上的所有内容(设置为git bare repo).另外,我想在另一台计算机上同步这些项目(用于部署).

计算机1上的2个项目路径是

/machine1/path/proj1
/machine1/path/proj2 
Run Code Online (Sandbox Code Playgroud)

这是我设置的方式(为proj2重复完全相同的步骤)

#Initialize git repo
cd /machine1/path/proj1
git init
git add .
git commit -a -m "proj 1 first commit"
Run Code Online (Sandbox Code Playgroud)
#Backup on USB
cd /usb/backup
mkdir proj1.git
cd proj1.git
git init --bare
cd /machine1/path/proj1
git push --mirror /usb/backup/proj1.git
Run Code Online (Sandbox Code Playgroud)
#Clone to other computer
cd /machine2/path
git clone /usb/backup/proj1.git

#After making changes on machine1, I update machine2 using this command
git pull /usb/backup/proj1.git
Run Code Online (Sandbox Code Playgroud)

题:

  1. 这些步骤是否适用于(i)设置,(ii)USB备份,(iii)同步到其他机器?或者是否有正确/更好的方法来做到这一点
  2. 我错误地执行了这些命令

cd /machine2/path/proj2
git pull /usb/backup/proj1.git  
Run Code Online (Sandbox Code Playgroud)

我希望git显示一条错误消息......类似于"尝试将proj2与proj1 repo同步",而是在proj1中创建了proj2的子目录.我的设置有缺点吗?我预计像这样的动作需要--force切换或者产生致命的错误

Von*_*onC 4

这些步骤基本上是正确的,除了我更喜欢使用 git bundle和 USB 密钥(即我更喜欢在 USB 密钥上每个项目一个文件,而不是许多文件:文件损坏的可能性较小)。您可以使用标签和分支创建一个,然后从这些捆绑包中提取。

关于拉取问题,我建议设置一个遥控器

got remote add origin /usb/backup/proj1.git
Run Code Online (Sandbox Code Playgroud)

这样,您将“ pull origin”而不是手动输入地址(您可能会混淆)。

有关更多信息,请参阅Groking git 远程用法。