对我来说容易,我不是一个命令行的人…我们在我们的Windows网络(使用msysgit和GitExtensions)中设置了GIT。我们每个都有我们自己的存储库,我们推送到我们其中一台服务器上的远程“裸”存储库。都好。
我正在尝试在服务器上设置一个计划的作业,这将克隆从C驱动器到外部驱动器(F)上的存储库 – 这使得这个工作有一些困难。我可以在GIT bash中相对容易地做到这一点,但是我不知道如何将它保存到一个批处理文件中,然后我可以执行。
我到目前为止
rmdir F:\GitClone /s /q mkdir F:\GitClone mkdir F:\GitClone\Repo1 CD /D F:\GitClone\Repo1\ GIT CLONE /c/GIT/Repo1/
我也尝试了最后一行的以下内容:
GIT CLONE C:\GIT\Repo1\
但是这样做也不行。我有点。ped,会感谢一些帮助。 C驱动器包含我们的裸存储库,F驱动器是我们的外部驱动器,我们每天更换…
谢谢,这里有几个答案非常有用。我得到的答案可能是这些的组合,所以点指出如何运行一个bash脚本和如何脚本的拉/推。
需要将这些组合在一起工作,以便在各种驱动器交换和传出(即克隆存储库(如果外部驱动器上不存在,然后仅仅拉出其他方式的差异)时才可以),但应该是可行的。谢谢大家。
请注意,git本身只能将所需的更改复制到克隆的存储库。
如果您希望定期更新您的备份副本,请执行以下操作:创建一个裸存储库作为备份存储库,然后重复推送所有新更改(无需删除旧备份)。
好的,我们开始创建你的回购
$ cd /tmp $ mkdir myrepo && cd myrepo $ touch hi && git add . && git commit -m "bla"
所以,这是你的资料库。现在我们创建克隆:
$ cd /tmp $ mkdir backup && cd backup $ git --bare init Initialized empty Git repository in /tmp/backup/
现在,我们设置你的备份代码进行常规备份…
$ cd /tmp/myrepo $ git remote add backup /tmp/backup $ git config remote.backup.mirror true
然后将所有内容复制到备份:
$ git push backup Counting objects: 3,done. Writing objects: 100% (3/3),206 bytes,done. Total 3 (delta 0),reused 0 (delta 0) Unpacking objects: 100% (3/3),done. To /tmp/backup * °new branch§ master -> master
看看它是否有效:
$ cd /tmp/backup $ git log commit d027b125166ff3a5be2d7f7416893a012f218f82 Author: Niko Schwarz <niko.schwarzàgmail.com> Date: Fri Dec 11 12:24:03 2009 +0100 hi
Tada,你设置好了因此,所有脚本需要做的是发出git push备份。完全没有必要反复丢弃旧的备份。
另一种选择是你可以拥有rsync这样做:
rsync -av rsync://rsync.samba.org/ftp/unpacked/rsync /dest/dir/
User Offby添加:从1.5.4版本开始,“git remote add”采用“–mirror”选项,可以节省您“git config remote.origin.mirror true”,并且必须通过–mirror到“git推”。