20

我对本地存储库中的错误分支进行了一些开发。我做了 agit branch而没有下一步做 a git checkout。命令看起来像这样:

#On branch development
git branch release-v0.2.0b
# changes and several commits
git push origin release-v0.2.0b

就在那时我意识到我在错误的分支上工作。我的 github 存储库处于正确状态,但我的本地存储库不是。我已将开发中的更改合并到 release-v0.2.0b 中,但我想将开发重置为我的 github 存储库中的方式。解决这个问题的最佳方法是什么?

4

4 回答 4

76

更快的是,您可以将本地分支重置为特定的远程:

git reset --hard remote/branch

其中“remote”是远程的名称
“branch”是远程分支的名称

于 2013-05-30T08:46:23.320 回答
16

只是为了确保我了解事物的状态:您创建了发布分支但没有将其签出,因此您的提交位于本地存储库的开发分支上。您说您将更改合并到 release-v0.2.0b 分支中。

如果是这种情况,并且您需要保留开发分支上的其他提交,只需删除开发分支的本地副本并从源再次检出。

首先,验证您拥有哪些分支以及您所在的分支:

git branch -av

然后从开发分支切换,以便您可以将其删除:

git checkout origin/development
git branch -D development

这实际上使您没有分支,但是当您从原点再次检查它时,您会回到分支:

git checkout origin/development -b development

我建议检查 origin/development 以避免不必要地搅动快照中的文件。

于 2010-01-27T14:10:23.187 回答
2

回到你想要更改的本地发布分支,从 github 拉到那里。

git checkout local-branch-that-refers-public-v0.2.0b
git pull origin release-v0.2.0b

然后,将您提交的本地分支的分支指针重置为您想要返回的较早提交。

git checkout release-v0.2.0b
git reset HEAD^
于 2010-01-27T13:53:30.293 回答
-3

使用git reset --hard

于 2010-01-27T13:46:21.927 回答