【发布时间】:2018-01-09 05:13:15
【问题描述】:
确切地说,我正在使用 Git (GitLab) 管理我公司的一个项目的源代码。两名开发人员在项目上工作,为每个任务创建一个分支,然后创建一个合并请求。我主要通过 UI 直接合并这些,这应该与在命令行中执行此操作相同:
git checkout master
git merge --no-ff 1224-cool-feature-branch
有时我会看到页面的小功能或部分消失。
考虑以下情况
- 在 ab12 从 master 分支的 Dev A 分支 -> 新分支名称
FeatureA - 在 ab12 从 master 分支 Dev B -> 新分支名称
FeatureB - Dev A 更改
foobar.txt并提交到FeatureA - FeatureA 使用
merge --no-ff使用默认递归策略合并到 master 中 - 开发 B 更改
foobar.txt并提交到功能 B - FeatureB 使用
merge --no-ff合并到 master 中,使用默认的递归策略没有冲突
从FeatureA 到foobar.txt 的更改是否可能已被覆盖而不会产生冲突?
【问题讨论】:
-
当你将feature合并到master时,master的代码会发生变化,因为将feature的commits引入master。这就是
merge默认所做的,按设计工作。 -
如果问题是:如果两个分支都没有改变某个文件,合并会改变它吗?那么答案是否定的,除非有人在合并过程中手动更改该文件。
-
如果您专注于您认为已经消失的一项特定功能并找出其原因,它会更具建设性。您可以通过命令
git show <commit>:<path>来检查文件的每个提交内容 -
我用一个导致观察到的行为的工作流示例完全改写了我的问题。 @max630 我正在寻找功能,但找不到一个我确定是由这个引起的。如果我这样做了,我会使用
git log和git show来找出答案