我有一个已经在Visual Studio中工作了一段时间的项目,并将所做的更改保存在Git存储库中。我们将此项目称为A,它具有以下提交历史记录
A0-A1-A2-A3-A4-A5-A6
后来,我开始处理另一个项目B,该项目位于另一个Git存储库中。
B0-B1-B2-B3
在某个时候,我认为这两个项目之间确实是直接相关的,因此我将Project B合并到Project A存储库中,并将其添加到Project A Visual Studio解决方案中。现在,项目A存储库具有两个根提交A0和B0。
A0-A1-A2-A3-A4-A5-A6-M1
/
B0-B1-B2-B3-
在此之后,我假设这些项目是一个项目,并且不用费心将我的工作分为独立的项目A和项目B分支。大多数提交都与Project A或Project B有关。尽管如此,我还是对A和B进行了一些修改。
A0-A1-A2-A3-A4-A5-A6-M1-AB1-A7-B4-B5-AB2-B6-A8-A9
/
B0-B1-B2-B3-
但是,现在我决定合并这些项目是错误的,并且想将两个项目的历史拆分回各自独立的git存储库。
A0-A1-A2-A3-A4-A5-A6-A7-A8-A9
B0-B1-B2-B3-B4-B5-B6
这两个项目都是完全私人的项目,只有我一直在从事。因此,重新部署/重新创建所有提交不是问题。我已经在SO和网络上的其他地方阅读了很多文章,但仍然想不出最好的方法是将其拆分。
这是一项工作git rebase
:
git clone current_repos new_repos_only_a ; cd new_repos_only_a
git rebase -i A6
# skip all B commits, pick all A commits, do not pick the merge commit (should be skipped by git automatically)
(B
当然,在单独的新存储库中也是如此)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句