Git - 忽略单个提交

Git - ignoring a single commit

我有一个包含大量代码的分支 A,为了便于合并它,我不得不删除一个大功能 - 即,我创建了一个删除我创建的一些新文件的提交。从而创建分支 B。B 被合并到 develop,并且 develop 分支堆积了更多的变化。

现在我想重新访问分支 A 并将 develop 合并到其中。刮掉是在一次提交中。所以我想

git fetch origin develop

并合并除某个提交之外的所有提交(我合并了删除提交之前的所有提交,但我还想合并删除提交之后的所有提交[没有预期的冲突])。

总结一下:

B = A + (deleting commit)

develop = B + commit1 + commit2 + ... + commit[n]

我要创建:

A' = develop - deleting commit

有没有办法创建一个否定提交并可能隐藏它?那我可以git pull origin develop & git stash pop.

我该怎么做?

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

git checkout develop
git rebase -i A

然后您将看到一个屏幕,其中列出了自分支 A 开始以来的所有提交。把不需要的commit那一行删掉,然后保存文件(一般界面在vi,所以输入:wq会保存退出,查看vi文档更多细节)。完成后,develop 分支现在将拥有除大删除之外的所有提交。不过别担心,因为 B 仍然会有删除提交,如果需要,您可以随时通过检查分支 B 返回它。

警告:由于执行这些操作,您可能会遇到一些冲突或其他冲突。此外,也不能保证您的代码会真正起作用; git 是一个文本工具,而不是 "code" 工具本身。