我们有分支机构的起源和发展。master的初始状态标记为tag_ABC。
我们几乎没有对developer分支进行任何更改并将其推向原点。然后,我们无意中将开发合并为大师并推向了起源。
现在我们想将master还原到检查点tag_ABC。我们该怎么做?
我们有分支机构的起源和发展。master的初始状态标记为tag_ABC。
我们几乎没有对developer分支进行任何更改并将其推向原点。然后,我们无意中将开发合并为大师并推向了起源。
现在我们想将master还原到检查点tag_ABC。我们该怎么做?
Answers:
你可以做
git checkout master
git reset --hard tag_ABC
git push --force origin master
请注意,这将覆盖上游存储库中的现有历史记录,并可能对签出该存储库的其他开发人员造成问题。
git reset --hard HEAD^
git reset --hard HEAD^可以多次使用BTW一次回退一个提交,然后git push --force origin master可以使用它(如果它位于远程位置)。
git pull以及git reset --hard origin/master
这不是问题的直接答案,但是在搜索将分支的代码还原为标签版本的方法时,此页面会返回。
另一种方法是在分支的当前状态和要还原到的标记之间创建差异,然后将其应用于分支。这样可以确保版本历史记录正确无误,并显示所做的更改,然后再返回。
假设您的分支称为master,而您想返回的标签称为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
cat ~/diff.patch | git apply,它会告诉我error: unrecognized input。任何的想法?@NitinBansal也许是因为您最近发表了评论?
git push --force origin master