git - 用另一个分支的更改覆盖分支
问题描述
各位 git 用户您好!
我遇到以下问题,我不知道避免它的最佳和正确方法是什么。所以在这里我将解释:
我正在使用 2 个不同的分支机构:
master
--> 生产dev
--> 开发
我目前使用的工作流程如下:
dev
在分支上进行更改- 更改经过测试和批准
- 签出
master
并合并dev
以包含新更改
到目前为止没有什么疯狂的,对吧?
现在,几周前出现了以下情况:
dev
在分支上进行更改更改经过测试和批准
签出
master
并合并dev
以包含新更改有人意识到这些更改的一部分不应该在
master
(生产)中在
master
分支中,我们评论了这些更改,以便这些更改未在master
现在的情况:
所有的变化都在
dev
所有更改都在,
master
但其中一部分被禁用到现在为止还挺好
几天后,发生了以下事情:
添加了更多更改
dev
更改经过测试和批准
签出
master
并合并dev
以包括最近的新更改以及现在在master
.结果,所有内容都包含在中,
master
但已评论的更改仍被评论在master
.
一开始,我有点期待master
被版本覆盖,dev
但后来我意识到这没有多大意义,因为合并实际上是将两个分支的更改放在一起,所以结果是绝对有意义的。但是,这不是我需要的。
什么是最好的解决方案?我在考虑以下选项:
绝对禁止对
master
分支进行更改。所以任何更改(比如注释部分代码)都应该先dev
在master
.当合并到
master
使用参数时,忽略当前分支中的所有更改,只获取来自dev
分支的所有更改。那太棒了,显然我不知道如何在 git 中做到这一点。
无论如何,您的意见将不胜感激。
谢谢!
解决方案
这是你应该做的
在您master
对.dev
master
然后dev
你应该已经恢复了commit ( git revert commit-id
),它注释掉了master
.
然后,当您继续再次合并dev
时master
,一切都会好起来的。
现在事情已经发展得更远了,您可以:
[最佳方法] 尝试上述步骤;如果所做的更改
dev
不够深入和/或没有触及与commit相同的地方,那么很可能一切都是正确的;或者在
master
分支中继续还原(git revert
)提交。
推荐阅读
- c - 使用 winmain 和简单代码编译错误,“WinMain 的先前声明”
- python - Split a torch tensor using a same-sized tensor of indices
- r - Is there a R function to put points in a dendrogram?
- kotlin - PublishSubject 与 Kotlin 协程(流/通道)
- firebase - 使用 Firebase 无密码登录,无需将链接发送到电子邮件
- javascript - 如何将 React 表单转换为 React Native
- git - GitHub 的 view-branch 功能是无状态的吗?如果是,它是如何实现的?
- python-3.x - 使用 python 保存电报组中的消息
- java - 使用堆栈和队列 ADTS 在 Java 中将中缀转换为后缀
- ios - iOS如何在后台线程中使用全局属性