git - 有没有办法从你当前的 HEAD 历史记录中的某个地方删除一个提交?
问题描述
没有git rebase -i HEAD~(1+whatever the depth of the commit is)
?例如类似的东西git drop iu34kjh233
我在一个更像 cvs 的工作流程上工作(而且我无权改变它),所以我们一次只选择一个提交master
。有时我会做两件事情,HEAD
作为基础,commit1
在上面HEAD
和commit2
上面commit1
。git drop commit1 && git push -f mygithubrepo HEAD:refs/heads/myprbranch
当我想 PR 时能够方便commit2
。有没有办法做到这一点?
解决方案
我认为没有任何干净的方法可以做到这一点git rebase
如果您不介意肮脏的历史,您仍然git revert <commit_sha>
可以创建反向提交到您想要删除的那个。
不要忘记这rebase
是一个非常通用且功能强大的工具,使用起来也很棘手。
Mostley 的事实是,如果你从历史的中间删除一个提交,你将创建新的历史流,提交的 sha-s 与它们原来的完全不同。围绕这个做任何自动/脚本化的工作是危险的。特别是当分支已经被推送到远程时。
推荐阅读
- javascript - 我的 html 按钮没有更新数据库(Flaskapp)中的数据,我的代码有什么问题?
- java - Java CSVWriter 在文件末尾添加空行
- javascript - webpack:快递找不到捆绑包错误404
- ruby - Nokogiri 在 Ubuntu 20.04 上安装失败
- c# - 如何在 Unity 中循环命令指定的时间
- python - 尝试使用 STS 通过 SQS 连接 Celery 时出错
- javascript - 如何打破 Reactstrap 上的图像行序列?
- r - R中ggplot中的标签不正确
- android - `R.string.cast_casting_to_device`在哪个包中
- java - 为什么我在 java 中预期的字符串输出之前在输出中得到一个空行?另外,当我使用 sc.nextLine() 时,它会出错,为什么?