繁体   English   中英

复制git分支,仅文件,无历史记录,引用等

[英]Duplicate git branch, only files, no history, refs, etc

我正在尝试确定Git中是否有一种方法可以简单地获取repo1中master的当前状态(仅文件)并将其放置在单独的存储库repo2的master中。 基本上,我们在一个活动的仓库上工作,并且在本周结束时,我们也想在备份存储库上提交当前代码。 我首先虽然可以通过push --mirror来实现,但是这只会覆盖第二个存储库中的所有内容,而这并不是我想要的。 我将简要介绍一下我目前正在做什么,以便您可以了解我正在努力实现的目标:

  1. 从文件夹A中的repo1(活动一个)克隆主服务器
  2. 从文件夹B中的repo2(备份一)克隆主服务器
  3. 删除A / .git文件夹
  4. 将B / .git移到A。此时,文件夹A包含来自repo1的文件,但包含来自repo2的.git。
  5. 提交所有更改(git基本上将其视为一些新文件,一些已删除文件等)

基本上,通过上述操作,整个操作被视为对repo2的一个简单提交,而无需引用repo1的任何内容(我不需要其他分支的更改,不需要提交历史记录,等等)因此,有一种方法可以做到这一点在git中? 还是那里有一个实现此目的的shell /代码片段?

您可能可以借助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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM