在不执行新提交的情况下恢复git提交
是否可以在不执行新提交的情况下恢复git提交以恢复这些提交 这将在最后创建一个新的提交:在不执行新提交的情况下恢复git提交,git,Git,是否可以在不执行新提交的情况下恢复git提交以恢复这些提交 这将在最后创建一个新的提交: $ git revert --no-commit D $ git revert --no-commit C $ git revert --no-commit B $ git commit -m "the commit message" 警告:上述命令将永久删除上次提交时对文件的修改。可能很危险不,这是不可能的。git rebase-i HEAD~1您是否处于可以重新编写历史记录的情况下?存储库中唯一永久性
$ git revert --no-commit D
$ git revert --no-commit C
$ git revert --no-commit B
$ git commit -m "the commit message"
警告:上述命令将永久删除上次提交时对文件的修改。可能很危险不,这是不可能的。
git rebase-i HEAD~1
您是否处于可以重新编写历史记录的情况下?存储库中唯一永久性的部分是提交。如果你不关心持久性,你可以使用git revert-n(又名--no commit
)撤销工作树中的内容,然后让工作树与提交不同。您甚至可以使用--mixed
重置使索引与头匹配。但是,在您提交之前,包含已备份更改的版本不会永久保存。因此,我首先必须执行还原,提交还原,然后执行此操作?不,您只需要指定要返回的提交,而不是头~1
。现在,这个命令将为您返回一个提交。如果您已经将要删除的提交推送到远程,那么这样做可能会很危险,因为您重写了历史记录。但是,如果这不是一个问题,这是还原最后一个提交的好解决方案。如果要还原的提交不是最后一个提交,那么该解决方案是什么?正如我所说的,您需要指定所需提交的SHA
,而不是HEAD~1
git reset --hard HEAD~1