2

我对 master 分支的最后一次提交是我想要恢复所有内容的地方。我创建了一个分支并提交,甚至将其合并到主分支。但是,在我合并该分支后一切都出错了。

我想完全删除该分支并将所有内容恢复到最后一次主提交。我怎么做?

PS:我确实尝试git branch -D [branch-name]过(如果我不合并到主分支,效果很好),但是错误的文件和目录仍然在主分支中

4

2 回答 2

3

签出主分支 ( git checkout master)。然后查看日志 ( git log) 并复制您想要返回的提交的 SHA。

然后使用以下命令重置回该提交:

git reset --hard whatever_your_sha_is

SHA 的一个示例是 f75b7ca5beb502e7f99434ea47e631bdd18fef13。如果您希望将所做的更改保留为分阶段更改,还可以使用 --soft 开关,并使用 --mixed 开关将它们保留为非分阶段更改。

然后,如果您仍然愿意,您可以删除您的分支。

PS git reset 命令非常有用,我在这里写了一篇关于它的博客文章或查看任何著名的 git 网站以获取有关如何使用它的更多提示。

于 2012-12-25T00:36:46.837 回答
1

你应该申请:

git branch -D [branch-name]
git checkout master

您已经创建了一个新分支并在签出后提交了它。所以你的主人没有你所做的改变和承诺。您可以简单地删除您创建的分支并签出您的主分支
如果您已经对主分支进行了一些提交并且您想要回滚。你可以做。

git reflog

你选择你想去的提交。例如:HEAD@{25},然后你申请

git checkout master
git reset --hard HEAD@{25}
于 2012-12-25T00:32:32.143 回答