我们有分支机构的起源和发展。
master的初始状态标记为tag_ABC
。
我们对开发分支进行了很少的更改并推向了原点。 然后我们不小心将发展合并到了主人并推向了原点。
现在我们想将master恢复到检查点tag_ABC
。我们怎么能这样做?
答案 0 :(得分:140)
你可以做到
git checkout master
git reset --hard tag_ABC
git push --force origin master
请注意,这将覆盖上游仓库中的现有历史记录,并可能会导致其他已签出此仓库的开发人员遇到问题。
答案 1 :(得分:53)
这不是问题的直接答案,但在搜索将分支代码还原为标记版本的方法时会返回此页面。
另一种方法是在分支的当前状态和要恢复的标记之间创建差异,然后将其应用于分支。这样可以保持版本历史记录的正确性,并显示更改后再进行更改。
假设您的分支被称为主,并且您想要返回的标记称为 1.1.1
git checkout 1.1.1
git diff master > ~/diff.patch
git checkout master
cat ~/diff.patch | git apply
git commit -am 'Rolled back to version 1.1.1'
git push origin master