如何将主分支恢复为git中的标记?

时间:2011-07-29 11:10:13

标签: git

我们有分支机构的起源和发展。 master的初始状态标记为tag_ABC

我们对开发分支进行了很少的更改并推向了原点。 然后我们不小心将发展合并到了主人并推向了原点。

现在我们想将master恢复到检查点tag_ABC。我们怎么能这样做?

2 个答案:

答案 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