我如何进行 git 替换而不是合并
How do I do a git replace rather than a merge
我正在尝试以简单的方式执行此操作并减少编码。我在 git
中有以下提交
A->B->C->D
我想基本上删除提交 C 并保留提交 D - 我正在努力寻找方法
我试过了
git checkout -b myfix B
git cherry-pick D
git checkout master
git merge myfix
当然,自从我合并后,提交 C 仍然存在。
有没有办法说用 myfix 分支替换 master?
甚至另一种获取方法
A->B->D->[new commit]
交互式变基
$ git rebase -i HEAD~5
其中 -i 是交互式标志,HEAD~5 表示在交互式 rebase 中包含最后 5 次提交。
然后会出现提示,删除引用要删除的提交的行,保存并关闭。
还有
如果您只想返回本地提交,只需使用 git revert
git revert
是一个非常简单的工具,可以实现您想要的效果。 This writeup is a nice explanation on how it works and how to use it,但是这只是使用的问题:
git revert <commit>
其中 <commit>
是提交 ID,或者在您的情况下只是 HEAD~1
。结果命令将是:
git revert HEAD~1
然后只需 git push
您的更改即可。
我正在尝试以简单的方式执行此操作并减少编码。我在 git
中有以下提交A->B->C->D
我想基本上删除提交 C 并保留提交 D - 我正在努力寻找方法
我试过了
git checkout -b myfix B
git cherry-pick D
git checkout master
git merge myfix
当然,自从我合并后,提交 C 仍然存在。
有没有办法说用 myfix 分支替换 master?
甚至另一种获取方法
A->B->D->[new commit]
交互式变基
$ git rebase -i HEAD~5
其中 -i 是交互式标志,HEAD~5 表示在交互式 rebase 中包含最后 5 次提交。
然后会出现提示,删除引用要删除的提交的行,保存并关闭。
还有
如果您只想返回本地提交,只需使用 git revert
git revert
是一个非常简单的工具,可以实现您想要的效果。 This writeup is a nice explanation on how it works and how to use it,但是这只是使用的问题:
git revert <commit>
其中 <commit>
是提交 ID,或者在您的情况下只是 HEAD~1
。结果命令将是:
git revert HEAD~1
然后只需 git push
您的更改即可。