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_Git Revert - Fatal编程技术网

Git恢复,然后提交,但希望在恢复之前保留修订

Git恢复,然后提交,但希望在恢复之前保留修订,git,git-revert,Git,Git Revert,我的提交已经推送到Github,比方说 A>B>C>D>E——头部 我想恢复到B,所以我使用 git重置——硬 现在,它看起来像 A>B——头部 所以,如果我用git push--force将它推送到服务器,我会丢失存储库中的C、D、E 如何恢复文件并提交为最后一个修订版 A>B>C>D>E>F F=恢复:B 我不能使用git commit,因为它说没有要提交的文件。试试这个: git checkout B git reset --soft E git commit -m 'Reverted t

我的提交已经推送到Github,比方说

A>B>C>D>E——头部

我想恢复到B,所以我使用

git重置——硬

现在,它看起来像

A>B——头部

所以,如果我用git push--force将它推送到服务器,我会丢失存储库中的C、D、E

如何恢复文件并提交为最后一个修订版 A>B>C>D>E>F

F=恢复:B

我不能使用git commit,因为它说没有要提交的文件。

试试这个:

git checkout B
git reset --soft E
git commit -m 'Reverted to B'
checkout命令将更改工作树和索引以匹配提交B。使用
--soft
重置将更改当前分支指向的提交,而不会影响工作树或索引。换句话说,在reset命令之后,索引将处于与B commit完全相同的状态


您还可以使用
git revert B..E
,它将执行相同的操作,只是它将为每个已还原的提交创建一个新的提交。如果希望在一次提交中进行恢复,只需添加
-n
选项(
git revert-nb..E
),git就会将恢复应用于工作目录和索引。提交结果以完成恢复