git - 删除历史记录中 merge 的分支?

标签 git git-branch git-merge

如何删除过去 merge 到 master 的分支?

来自类似:

master
... a---> b ---> c ---------> d -----> e ---> f ---> g ---> h
                  \                   /
                    x ---> y ------> z
                     branch1

至:

... a---> b ---> c ---------> d -----> f ---> g ---> h
                  \                
                    x ---> y ---> z
                     branch1

我想撤消/删除我之前所做的将分支 merge 到 master 的操作。


我尝试过类似的方法,但遇到了冲突。这可能吗?

# currently we are in <h> commit in master branch
git checkout master   

# new temporary branch
git branch tmp_master 

git checkout tmp_master

# reseting temp. branch to reqd. commit
git reset <d> --hard  

# cherry-picking subsequent commits
git cherry-pick <f>..<h> 

完成后——正如我所期望的那样:

# change temp. branch to master branch
git branch -D master

git branch -m master

最佳答案

git rebase --onto d e 将从 h 的分支历史记录中删除 e。请参阅here了解更多信息。

关于git - 删除历史记录中 merge 的分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39510280/

相关文章:

git - 在不检查分支的情况下查看 git diff?

git - 我如何将 "move"从 "no branch"提交到实际分支?

git - git如何维护已删除分支的提交?

git - 为什么我不能 checkout 另一个 git 分支?

Git 分支 : There and Back Again

git - 如何在 Visual Studio Team Explorer 中一次性接受多个文件中的 Git 分支 merge 更改?

git - 如何在 git 中进行部分 merge ?

git - 提交给开源项目的后门示例?

python - 如何交换生产和开发的配置文件?

Git pull 原点 HEAD