我想将文件重置为以前的提交但保持当前提交。所以如果我这样做:
git init
touch 1; git add 1; git commit -m "1"
touch 2; git add 2; git commit -m "2"
touch 3; git add 3; git commit -m "3"
这将产生 3 次提交。我想继续提交 #3,但将阶段重置为我在提交 #2 时的状态。我试图遵循:
git reset --(hard|soft|mixed|merge|keep)
git checkout
git revert
所以在一些魔术命令之后,blah
我想要以下结果:
git log
显示 HEAD 仍在提交 #3ls .
显示我只有文件1
并且2
在我的文件系统上。git diff
或git diff --cached
显示该文件3
已被删除。我可以做git reset --hard <hash-2>
,但这会将HEAD
提交#2。
git revert HEAD -n
使用-n
or--no-commit
它会恢复工作树和索引中的更改,但不会创建提交。HEAD
可以用其他等效的 commit-ish 替换。如果要提交已还原的内容,则需要运行git commit
.
如果你想恢复一些连续的提交,以你的评论中的案例为例,
git revert HEAD~3..HEAD -n
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句