Git恢复,然后提交,但希望在恢复之前保留修订
我的提交已经推送到Github,比方说 A>B>C>D>E——头部 我想恢复到B,所以我使用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
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就会将恢复应用于工作目录和索引。提交结果以完成恢复