准确地说,我正在使用Git(GitLab(管理我公司项目的源代码。两个开发人员处理项目,为每个任务创建一个分支,然后创建一个合并请求。我主要通过 UI 直接合并这些内容,这应该与在命令行中执行此操作相同:
git checkout master
git merge --no-ff 1224-cool-feature-branch
我不时看到页面的小功能或部分消失。
考虑以下情况
- dev A 从 ab12 的主分支 -> 新的分支名称
FeatureA
- dev B 从 ab12 的主分支 ->新的分支名称
FeatureB
- 开发 A 更改
foobar.txt
并提交到FeatureA
- FeatureA 使用默认递归策略
merge --no-ff
合并到主节点中 - 开发 B 更改
foobar.txt
并提交到功能 B - 特征 B 使用默认递归策略合并到主
merge --no-ff
,没有冲突
是否有可能覆盖FeatureA
对foobar.txt
所做的更改而不会产生冲突?
我相信答案是"不"。该文件使用传统的 3 路合并进行合并,如果它们彼此相距足够远或报告冲突,则应应用更改,没有其他选择。
这种方法可能存在一些问题,例如参见 http://r6.ca/blog/20110416T204742Z.html,但我无法想象任何极端情况如何导致静默编辑反转。