我们已经在windows网络中设置了GIT (使用msysgit和GitExtensions)。我们每个人都有自己的存储库,我们推送到我们其中一台服务器上的远程“裸”存储库。一切都很好。
我正在尝试在服务器上设置一个计划的作业,它将从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\
但这也行不通。我有点迷惑了,希望能帮上忙。C驱动器包含我们的空存储库,F驱动器是我们每天交换的外部驱动器……
这里有几个非常有用的答案,谢谢。我得到的答案可能是这些的组合,因此指出了如何运行bash脚本以及如何编写拉/推脚本。
我需要把它们放在一起工作,这样当不同的驱动器被换入和换出时,它都会很高兴(即,如果外部驱动器上不存在存储库,则克隆该存储库,否则只提取差异),但这应该是可行的。感谢所有人。
发布于 2009-12-11 19:21:04
您可以随时安排bash.exe mybashbackupscript.sh
无论如何,在windows术语中:
rmdir F:\GitClone /s /q
mkdir -p F:\GitClone\Repo1
copy c:\GIT\Repo1\.git F:\GitClone\Repo1\.git
git clone
实际上不会做比这更花哨的事情。
编辑:正如其他人指出的那样,最好是创建一个新的备份存储库,然后直接拉/取进去。您将避免.git的任何访问问题:)
发布于 2009-12-11 19:29:13
因为git命令有点奇怪,所以你必须使用call
来执行批处理文件中的任何git
命令:
rmdir F:\GitClone /s /q
mkdir F:\GitClone
CD /D F:\GitClone\
call GIT CLONE c/GIT/Repo1/
发布于 2009-12-11 19:32:00
对不起,我不能评论帖子,但我也在考虑复制.git,但如果.git在拉取过程中被复制会发生什么?
不管怎样,为什么要复制所有的东西,因为你可以时不时地获取增量?
备份初始化:(在F:\GitClone\Repo1 empty中)
git init
git add remote origin /c/GIT/Repo1
那么你的“增量备份脚本”就会:
cd /f/GitClone/Repo1
git fetch origin
https://stackoverflow.com/questions/1887364
复制相似问题