【发布时间】:2011-03-23 18:55:13
【问题描述】:
在 Git 上,假设我搞砸了我的提交,并且我想将版本 3 之前的提交作为新版本。如果我这样做git checkout xxxx,它会创建一个新分支,似乎我只能合并它?我可以把它设为新的“主版本”吗?
我想要:
A-B-C-D-E
成为
A-B-C-D-E-F
其中 F 与 C 的内容完全相同
如果我改用git revert xxxx,好像肯定会有冲突,需要手动解决。
我真正想要的只是在某个时候将旧的提交变成新的提交,不管我的工作目录中有什么或最新的提交。
我该怎么做呢?
【问题讨论】:
-
只要
git checkout <commit-hash> .不要错过命令中的最后一个点 -
@IbrahimTayseer 是的,但在该命令之前
git rm -r .是相当必要的,否则如果有任何文件存在于较新版本中但旧版本中不存在,则仍然保留。跨度> -
是的,你是对的 :)
-
不是重复的,IMO,因为这个问题希望将以前的提交保留在线性历史中以供将来参考。我也有同样的需求,下面 svick 的回答对我有用,而“重复”问题的帮助不大。
标签: git