Git Release 需要回一个版本
Posted
技术标签:
【中文标题】Git Release 需要回一个版本【英文标题】:Git Release Need to go back a release 【发布时间】:2015-05-12 15:27:32 【问题描述】:我已经阅读了一些类似的问题,但是我没有得到我想要的。
我刚刚将一个版本推送到生产(现场),但由于某种原因有些东西不起作用。我想返回一个版本,以便我可以修复然后重新发布该版本。这是很容易做到的事情吗?我需要保留代码并能够重新推送。请任何帮助都可以挽救生命!!!
【问题讨论】:
这里的问题是如何将旧版本推送到生产环境?这里的问题是如何检查旧版本?您具体需要什么帮助?在您的环境中“将版本推送到生产环境”是什么样的? 在生产中我已经发布了 v5.7 我需要向后发布 v5.6 以便我刚刚推送的代码不会破坏网站。当我这样做时,我可以在本地签出版本并修复它还是必须创建一个新的功能分支? 推动生产对您来说意味着什么?它是如何工作的?你需要做什么才能做到这一点?您可以签出您想要的任何修订。不过,您只能从分支机构的负责人那里工作。你必须如何分支/标记/等。您要进行的修复工作完全取决于当地政策,我们无法告诉您。 到目前为止,我构建了 git flow 功能,然后完成了它们。之后我构建版本并完成它。然后我推送到 bitbucket,然后登录到 prod 并获取所有然后 rebase origin/master。所以如果我知道哪个 HEAD@4: 去我可以向后重置?没有真正的本地政策。 您应该很容易知道上次生产更新的位置。它应该是最后一个主控(假设您只在发布时合并到主控)。如果不是,并且您不经常投入生产,那么它应该只是我想象的生产机器上最新的 HEAD。 (你可能也应该有一个标签。如果你没有,你应该开始这样做。) 【参考方案1】:首先让我说您应该让 Git 专家管理员为您处理这件事。会安全很多。取而代之的是,您可以尝试按照这些说明进行操作。
git checkout <release>
将您的活动分支切换到您要救援的分支(当然您需要替换分支的实际名称)
git branch placeholder
这将在您当前的状态下保留一个名为“占位符”的分支,这样您就不会丢失任何东西。
git log --decorate --oneline
找到您想要将自己重置到的位置的 oid、标记或分支(也称为 committish):
git reset <committish> --hard
这会将您的活动分支移回提交点。
现在你处于一个整洁的状态,你基本上已经解决了你之前的烂摊子。如果您只想恢复状态,则可以将其推送到服务器(注意:您需要强制推送权限才能这样做)。
git push --force
无论如何,我建议您也推送占位符分支,以防您的本地系统出现故障或墨菲为您准备的任何可怕的事情。
git checkout placeholder
git push -u origin placeholder
根据 SO 上提供的任何信息,不提供任何保证,这仅作为指导,而非专业帮助。
【讨论】:
以上是关于Git Release 需要回一个版本的主要内容,如果未能解决你的问题,请参考以下文章