微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

GIT克隆到外部驱动器进行备份

对我来说很容易,我不是一个命令行的人…我们在我们的Windowsnetworking(使用msysgit&GitExtensions)设置了GIT。 我们每个都有我们自己的仓库,我们推送到我们的一台服务器上的远程“裸”仓库。 都好。

我试图在服务器上设置一个预定的作业,这将从C驱动器克隆到一个外部驱动器(在F) – 有一些困难得到这个工作。 我可以很容易地在Git bash中做到这一点,但是我不知道如何将它保存到一个batch file中,然后我可以对其进行处理。

我到目前为止:

rmdir F:GitClone /s /q mkdir F:GitClone mkdir F:GitCloneRepo1 CD /DF:GitCloneRepo1 GIT CLONE /c/GIT/Repo1/

我也尝试了以下的最后一行:

我怎样才能创buildMysqL数据库的增量备份

简单的备份脚本

Windows Home Server备份解决scheme

备份configuration文件

如何备份/移动LXC容器?

GIT CLONE C:GITRepo1

但是这也行不通…我有点难住,希望得到一些帮助。 C驱动器包含我们裸存储库和F驱动器是我们外部驱动器,我们每天换出…

这里有几个答案非常有用,谢谢。 我得到的答案可能是这些的组合,所以指出如何运行bash脚本以及如何脚本拉/推。

需要将这些function集中在一起工作,以便在各种驱动器交换时(例如,如果外部驱动器上不存在克隆存储库,然后只是区别其他方面),那么它很高兴,但这应该是可行的。 谢谢大家。

如何用命令行压缩指定的文件

在日志文件中保留60行

设置Emacs Tramp来存储本地备份

备份(和恢复)一个Plone实例

如何从挂载的硬盘启动恢复模式的MysqL服务

请注意,git本身非常擅长将所需的更改复制到克隆的存储库。

如果要定期更新repo副本,请执行以下操作:创建裸仓库作为备份存储库,然后重复推送所有新更改(无需删除旧备份)。

好吧,让我们开始创建你的回购

$ 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

田田,你定了 因此,您的脚本需要做的就是发出git push backup 。 完全不需要重复丢弃旧的备份。

另一种方法是你可以让rsync为你做这一切:

rsync -av rsync://rsync.samba.org/ftp/unpacked/rsync /dest/dir/

用户Offby增加 :从版本1.5.4,“git远程添加”采取“ – 镜像”选项,这将节省您不必“git配置remote.origin.mirror真”,并从必须通过 – 镜像到“混帐推”。

因为git命令有点奇怪,你必须使用call来执行批处理文件中的任何git命令:

rmdir F:GitClone /s /q mkdir F:GitClone CD /DF:GitClone call GIT CLONE c/GIT/Repo1/

你总是可以安排bash.exe mybashbackupscript.sh

无论如何,在Windows中:

rmdir F:GitClone /s /q mkdir -p F:GitCloneRepo1 copy c:GITRepo1.git F:GitCloneRepo1.git

git clone实际上并没有做任何更奇特的事情。

编辑:正如别人指出的那样,最好是创建一个新的备份仓库,然后将其拖入/取出。 你将避免与.git任何accesing问题:)

对不起,我不能评论帖子,但我也在考虑复制.git文件,但是如果.git文件一个pull文件中被复制,会发生什么?

无论如何,为什么复制整个东西,你可以不时获取三角洲?

备份初始化:(在F: GitClone Repo1空)

git init git add remote origin /c/GIT/Repo1

那么你的“增量备份脚本”就可以做到:

cd /f/GitClone/Repo1 git fetch origin

为什么你一直删除克隆? 当您只想复制文件时克隆现有存储库有什么意义?

只需在外部驱动器上创建回购(使用git clone 一次 ),然后定期运行git pull 。

问题解决了:

h: (flash drive) cd mkdir YourProject cd YourProject git init git remote add origin git@github.com:user/YourProject.git git remote add local C:wYourProject git pull origin master git push local master

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐