Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在不执行新提交的情况下恢复git提交_Git - Fatal编程技术网

在不执行新提交的情况下恢复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提交以恢复这些提交

这将在最后创建一个新的提交:

$ 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