我针对本地存储库中的错误分支进行了一些开发。我做了git branch
而没有接下来做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 repo中的方式。什么是最好的方法呢?
答案 0 :(得分:66)
您可以更快地将本地分支重置为特定的遥控器:
git reset --hard remote/branch
“远程”遥控器的名称 其中“分支”远程分支的名称
答案 1 :(得分:15)
只是为了确保我理解事物的状态:您创建了发布分支但没有检查它,因此您的提交位于本地存储库的开发分支中。您说您已将更改合并到release-v0.2.0b分支。
如果是这种情况,并且您需要保留开发分支上没有其他提交,只需删除开发分支的本地副本并从原点再次检出。
首先,验证您拥有的分支以及您所在的分支:
git branch -av
然后切换开发分支,以便删除它:
git checkout origin/development
git branch -D development
这实际上让你没有分支,但是当你从原点再次检查出来时你会回到分支上:
git checkout origin/development -b development
我建议检查原始/开发,以避免在快照中不必要地搅动文件。
答案 2 :(得分: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^
答案 3 :(得分:-3)