【问题标题】:Git Revert and then commit but want to keep revision before revertGit Revert 然后提交,但想在恢复之前保持修订
【发布时间】:2011-11-07 10:59:06
【问题描述】:

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

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

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

git reset --hard <B:Hash>

现在,它看起来像

A > B -- 头部

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

如何还原文件并提交为最后一个修订版本,例如 A > B > C > D > E > F

F = 还原:B

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

【问题讨论】:

    标签: git git-revert


    【解决方案1】:

    试试这个:

    git checkout B
    git reset --soft E
    git commit -m 'Reverted to B'
    

    checkout 命令将更改工作树和索引以匹配提交 B。使用--soft 重置将更改当前分支指向的提交,而不会影响工作树或索引。也就是说,在reset命令之后,index会和B commit的状态完全一样。


    你也可以使用git revert B..E,它会做同样的事情,除了它会为每个回复的提交创建一个新的提交。如果您希望在一次提交中进行还原,只需添加 -n 选项 (git revert -n B..E),Git 就会将还原应用到工作目录和索引。提交结果以完成还原。

    【讨论】:

      猜你喜欢
      • 2021-11-05
      • 2021-01-22
      • 2020-04-29
      • 2012-04-28
      • 2015-05-02
      • 2013-04-28
      • 2011-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多