gpt4 book ai didi

git - 恢复过去的 git 提交,但保留自那以后引入的更改

转载 作者:太空狗 更新时间:2023-10-29 14:43:46 25 4
gpt4 key购买 nike

我是 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

enter image description here

对于您要删除的每个提交,将 pick 替换为 drop

然后退出编辑模式(使用 ESC 键)和 :wq

关于git - 恢复过去的 git 提交,但保留自那以后引入的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40912615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com