我是git的新手。需要一些建议才能知道我的设置是否正确。请阅读以下内容:
我在我的开发计算机上使用git进行2个单独的项目,并希望备份USB驱动器上的所有内容(设置为git bare repo)。另外,我想在另一台计算机上同步这些项目(用于部署)。
computer1上的2个项目路径是
/machine1/path/proj1
/machine1/path/proj2
这就是我设置的方法(对proj2重复完全相同的步骤)
#Initialize git repo
cd /machine1/path/proj1
git init
git add .
git commit -a -m "proj 1 first commit"
#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
#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
问题:
cd /machine2/path/proj2
git pull /usb/backup/proj1.git
我希望git能够显示错误消息......类似于“尝试将proj2与proj1 repo同步”,而是在proj1中创建了proj2的子目录。我的设置有缺点吗?我希望像这样的动作需要--force
开关,否则会产生致命错误
答案 0 :(得分:4)
这些步骤基本上是正确的,除了我更喜欢使用USB密钥using git bundle(即我更喜欢每个项目使用USB密钥一个文件,而不是很多文件:更少的机会文件损坏)。您可以创建一个with tags and branches,然后从这些包中提取。
关于拉动问题,我建议setting a remote:
got remote add origin /usb/backup/proj1.git
这样,您可以“pull origin
”而不是手动输入地址(可以混淆)。
有关详情,请参阅Groking git remote usage。
答案 1 :(得分:1)
您还可以通过简单地为USB设置遥控器以及生产服务器的遥控器来使用后接收挂钩方法。后接收挂钩强制结账到你告诉它的地方,所以当你需要时你可以输入“git push usb”,它应该将-f签出到你的USB记忆棒或生产服务器。
检查出来...... http://toroid.org/ams/git-website-howto