我在Github上有一个Git repo和一个遥控器.(请不要编辑它在Github上的事实.这是相关的,它会对答案产生影响.谢谢.)
我想将主分支恢复到状态25提交回来.
我不想使用git --reset hard ...,git push -f因为我宁愿不消灭历史.
有没有办法告诉Git,有效......
"将我的工作副本中的所有内容与此前的提交完全相同,包括删除当时不存在的文件."
...然后提交该状态,然后将其推送到遥控器?
我试过git revert但是这里发生的事情......
$ git revert --no-commit d3289a7ab82fd76386d99bdd2c5e6496ecc62529..
error: Commit e88336ec528bc87dd6df3df82280b0fbd8c5a38d is a merge but no -m option was given.
fatal: revert failed
Run Code Online (Sandbox Code Playgroud)
然后试了......
$ git revert -m 1 --no-commit d3289a7ab82fd76386d99bdd2c5e6496ecc62529..
error: Mainline was specified but commit 84ccf1084d17d470ee03b89a7649c4a783f2b914 is not a merge.
fatal: revert failed
Run Code Online (Sandbox Code Playgroud)
是的,你可以(从顶级目录):
git revert --no-commit <relevant SHA>..
Run Code Online (Sandbox Code Playgroud)
然后你正常提交并推送.
请注意,您可以使用类似的东西git checkout <relevant SHA> -- .,但这不会删除自相关提交后添加的文件.