2017-07-07 32 views
1

我有一个回购(repoA),该回购中的文件有20-30次提交;我想要将该文件移至所有提交历史记录的repoB;我怎么做?如何将文件及其所有提交历史迁移到git中的新回购库?

+0

AFAIU,提交历史记录属于存储库,而不是单个文件。你承诺修改回购协议(即使你可以*通常*决定一次只修改一个单独的文件,这可能是一个坏主意) –

+0

从技术上讲,如果你重构涉及文件的提交,找到所有项目代表那些提交的回购,复制它们,然后在新的回购中手动更新所有的参考和分支。但你为什么想要? –

+0

简单而直接地说,提交*就是历史。没有“档案历史”这样的东西;只有“历史,这是所有承诺的集合”。当你运行'git log 'Git只是*避免打印*一些历史记录。 – torek

回答

2

如果你想要移动的是整个分支,只需添加一个新的远程指向新的repo并将分支推送到它。如果你有50个提交50个文件的提交,并且你想移动一个“单个”文件的历史,就好像文件总是一个人一样,你将不得不重写分支的历史记录,以便只获取那个文件的历史记录,没有更多,然后你将添加远程,然后推动它。

https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History

0

据我了解,你只想从一个文件移动变化和保存所有库的历史。

在git中提交不是关于某个文件。它们是关于存储库的。

也许你可以这样做:

1)得到repoA文件的更改和复制repoB它们作为新的提交。

2)一定的时间推repoB到主例如

3)合并后用主repoA。解决冲突(如果有)。

相关问题