我有一个包含大量代码的分支A并且为了便于合并它,我不得不删除一个大功能 - 也就是说,我创建了一个删除我创建的一些新文件的提交。从而创建了分支B.B合并开发,并开发分支堆积了更多的变化。
现在我想重新审视分支A并合并开发到它。在一次提交中刮掉了。所以我想
git fetch origin develop
并合并所有提交但是某个提交(我将所有提交合并到删除提交,但我还想在删除提交之后合并所有提交[没有预期的冲突])。
总结一下:
B = A +(删除提交)
develop = B + commit1 + commit2 + ... + commit [n]
我想创建:
A'= develop - 删除提交
有没有办法创建一个否定提交并可能存储?然后我可以git pull origin develop & git stash pop
。
我该怎么做?
答案 0 :(得分:2)
假设您在本地git存储库中有分支A
,B
和develop
。为了使develop
包含除大规模删除提交之外的所有提交,请执行以下操作:
git checkout develop
git rebase -i A
然后,您将看到一个屏幕,其中列出了自分支机构A
以来所有提交的列表。使用您不想要的提交删除该行,然后保存该文件(通常界面位于vi
,因此输入:wq
将保存并退出。请查看vi
文档更多细节)。完成后,develop
分支现在将拥有除大删除之外的所有提交。不过不要担心,因为B
仍然会有删除提交,如果需要,您可以通过签出分支B
来返回它。
警告:由于执行这些操作,您可能会遇到一些冲突或其他冲突。此外,无法保证您的代码实际可行; git是一个文本工具,而不是“代码”工具本身。