加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 我需要在生产中应用修补程序,但我没有创建分支

发布时间:2020-12-17 02:20:49 所属栏目:百科 来源:网络整理
导读:我开始在代码中处理一堆新功能而不进行分支. 这些新功能尚未准备好部署.但是,已经提出了一个紧急要求来解决另一个问题. 在开始添加新功能,在那里应用修复程序然后部署之前,我想回到该版本. 但是,我很困惑哪一个应该成为一个分支,哪个版本应该合并到哪个版本.
我开始在代码中处理一堆新功能而不进行分支.

这些新功能尚未准备好部署.但是,已经提出了一个紧急要求来解决另一个问题.

在开始添加新功能,在那里应用修复程序然后部署之前,我想回到该版本.

但是,我很困惑哪一个应该成为一个分支,哪个版本应该合并到哪个版本.

有人可以为我提供这个问题的解决方案,作为一步一步的git过程来完成这个.

注意,我从来没有分支源控制(现在我明白为什么我应该有)!

解决方法

我要做的是从您当前的状态创建一个分支作为功能分支,这样您就不会丢失任何工作.

git checkout -b new-features && git push origin new-features

既然您已将当前状态保存到分支(并将其推送到远程),请检查原始分支并将其恢复到当前头部之前的某个点.

执行此操作的最佳方法是使用git revert.关于为什么以及如何找到的一个很好的解释:Revert multiple git commits.

一旦你还原了更改,提交和推送,我建议你创建一个分支来开发bug修复.出于人们创建功能分支的相同原因,这是一种很好的做法.一个好的经验法则是创建一个与您正在处理的问题具有相同或相似名称/编号的分支.在那里完成所有更改,一旦完成,您可以将其拉入您标记部署的任何分支.

关于这一点最好的部分是,无论是否已将任何更改推送到远程,它都可以正常工作,这很简单并遵循最佳实践.

希望有所帮助.

编辑:回答评论中的问题.

“这也假设您所做的更改仅在您的计算机上是本地的,而不是推送到任何远程分支.”

如果你已经推动了那个方法将不起作用.有办法解决它,但我不推荐它.

基本上,两个方法的核心唯一区别是,一个执行git reset –hard [commit],另一个使用git revert.重置实际上告诉git返回到特定的提交,这实际上是你想要的效果,但如果你已经推动了,那就不赞成了.由于git不允许推送具有非快速转换并且您实际上已经删除了历史记录,因此您必须执行git push origin [branch] –force导致远程也丢失更改.

Revert实际上创建了一个提交,它将历史记录添加到关于要撤消的提交的git中.这样做更好,因为可以跟踪所有恢复的更改,并且从该分支撤出的任何人都不会变得不同步.当他们拉动时,他们将得到恢复或恢复.这样做的一个好的副作用是,如果您在还原的更改中出错,可以稍后将其还原,因为它只是另一个提交.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读