Git - 忽略单个提交

时间:2016-11-02 20:08:19

标签: git branching-and-merging

我有一个包含大量代码的分支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

我该怎么做?

1 个答案:

答案 0 :(得分:2)

假设您在本地git存储库中有分支ABdevelop。为了使develop包含除大规模删除提交之外的所有提交,请执行以下操作:

git checkout develop
git rebase -i A

然后,您将看到一个屏幕,其中列出了自分支机构A以来所有提交的列表。使用您不想要的提交删除该行,然后保存该文件(通常界面位于vi,因此输入:wq将保存并退出。请查看vi文档更多细节)。完成后,develop分支现在将拥有除大删除之外的所有提交。不过不要担心,因为B仍然会有删除提交,如果需要,您可以通过签出分支B来返回它。

警告:由于执行这些操作,您可能会遇到一些冲突或其他冲突。此外,无法保证您的代码实际可行; git是一个文本工具,而不是“代码”工具本身。