在主线上恢复意外提交的更改,返回到git上主存储库中的更改

时间:2015-08-26 14:49:35

标签: git git-commit git-reset git-revert git-commands

我正在开展一个项目,并且正在使用git architechture。我不小心对主线提交了一些更改,现在我想将它们还原回主存储库中的内容。

现在我在一个新的分支上,但那些提交仍然在主线分支中。我该怎么做?

什么是HEAD,我非常困惑。

我需要恢复3次提交。所以对于其中一个我做了“git revert”。现在,当我执行“git revert HEAD~3”时,它表明我需要合并更改并提交全部。但我不想要那些改变,这就是我回归的原因。

我可能听起来非常愚蠢和混乱,但我对此非常陌生,并且不想放弃任何更改,因为它是一个非常关键的项目,而且也不想弄乱主线分支。

1 个答案:

答案 0 :(得分:0)

我假设您的git拓扑看起来像这样:

---A---B---C---D master
                 newbranch

您希望{master}支持git reset这样的主分支:

git checkout master
git reset --hard HEAD~3

您的拓扑现在应该如下所示:

---A---B---C---D newbranch
    \
     master

要回答有关HEAD的问题,请参阅您当前分支的提示。如果你是master,则HEADA;如果你在newbranch,那么它是D

请参阅以下问题: