重复的git分支,只有文件,没有历史记录,引用等

时间:2015-08-09 20:02:29

标签: git

我正在尝试确定Git中是否有一种方法可以简单地在repo1中获取主服务器的当前状态(仅文件),并将它们简单地放在单独的存储库repo2的主服务器中。基本上我们在一个活跃的repo1上工作,在本周末我们想要在备份存储库上提交当前代码。我首先虽然这可以通过push -mirror实现,但这只是覆盖了第二个repo上的所有内容,这不是我想要的。我将很快描述我目前所做的事情,这样你就能理解我想要实现的目标:

  1. 从文件夹A中的repo1(活动的一个)克隆master
  2. 从文件夹B中的repo2(备份一)克隆master
  3. 删除A / .git文件夹
  4. 将B / .git移动到A.此时,文件夹A包含来自repo1的文件,但来自repo2的.git文件。
  5. 提交所有更改(git基本上视为一些新文件,一些删除文件等)
  6. 基本上如上所述,整个操作被视为repo2上的一个简单提交,没有引用repo1中的任何内容(我不需要从其他分支进行更改,不需要提交历史记录等) 那么有没有办法在git中做到这一点?或者也许有一个shell /代码snipet实现了这个目标?

1 个答案:

答案 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。