- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我是 git 的新手,不确定如何处理这个问题。
我想撤消一系列我们认为不是解决问题的好方法的特定提交(与单个文件相关),但我想保留此后引入的所有其他提交。
我不想只是编辑文件来删除那段代码,因为我觉得在此处恢复更明确并且可以更好地传达意图。
它是这样的:
X -> Y -> X -> -X -> Y -> X -> X
Y 指的是与该特定功能相关的提交,X 是我们希望保持完整的所有提交,以:
X -> X -> -X -> X -> X
我不确定 rebase 在这里如何工作,因为我不想只包含从某个点开始的所有提交。
cherry-pick 会是更好的方法吗?
编辑:可能值得一提的是所有这些提交都被推送了。
最佳答案
您可以使用交互式 rebase 来修复您的错误如果您的提交尚未共享(仍然是您存储库中的本地提交)
语法是:git rebase --interactive commit's hash(或者只是 git rebase -i commit's hash)
在你的情况下,假设你的第一个 x 提交的哈希是 x1(使用 git log 来 git 这个提交的哈希代码),那么你可以使用:git rebase -i x1
对于您要删除的每个提交,将 pick 替换为 drop
然后退出编辑模式(使用 ESC 键)和 :wq
关于git - 恢复过去的 git 提交,但保留自那以后引入的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40912615/
命令 svn status 返回如下内容: ? SomeClient\BUTCHERED.docx M SomeClient\Development notes.txt ?
我是一名优秀的程序员,十分优秀!