我正在尝试确定Git中是否有一种方法可以简单地在repo1中获取主服务器的当前状态(仅文件),并将它们简单地放在单独的存储库repo2的主服务器中。基本上我们在一个活跃的repo1上工作,在本周末我们想要在备份存储库上提交当前代码。我首先虽然这可以通过push -mirror实现,但这只是覆盖了第二个repo上的所有内容,这不是我想要的。我将很快描述我目前所做的事情,这样你就能理解我想要实现的目标:
基本上如上所述,整个操作被视为repo2上的一个简单提交,没有引用repo1中的任何内容(我不需要从其他分支进行更改,不需要提交历史记录等) 那么有没有办法在git中做到这一点?或者也许有一个shell /代码snipet实现了这个目标?
答案 0 :(得分:0)
你可以在git reset
的帮助下实现目标。您将repo1作为远程repo1添加到repo2,并定期在repo2上执行:
git fetch repo1 master
git checkout repo1/master
git reset master
git commit -a -m "synced from repo1/master"
通过这种方式,您将获得没有历史记录的普通快照。您仍然会在repo1/master
遥控器中拥有此历史记录,如果这是不受欢迎的,您可以在repo1存储库中针对专用分支执行此操作,例如master_backup
并仅将其提取到repo2。