让我们说我有一个拥有如此多提交的项目,手动从开始调整是不可能的。 我们也说没有分支或标签,只有主人。 我们还说有一些合并提交,但可能太多,无法手动合并或甚至跟踪它们。
我的问题是:如何从第一次提交中压缩所有提交以将XYZ提交到单个提交中?
我想要转换的图形表示:
/--R--T--Y---\
A--B--C--D--/--G--H--J--K--\---Q--X--Z---....
应该是这样的:
--<I don't care how you will do it git, just put everything from everywhere in a single commit here>----Q---X---Z.....
这可能吗?
答案 0 :(得分:1)
从所需的起点检出新分支。
git checkout D
git checkout -b myNewBranch
使用git merge --squash K
然后,您可以使用新消息提交合并中的所有更改。
在此之后,在Git 1.7.2及以上,你可以挑选一个范围来引导其他提交。
git cherry-pick Q^..Z