GitLab 可以处理对文件的多次更改吗

Can GitLab handle multiple changes to a file

我有一个场景,其中一位开发人员创建了一个分支,对文件进行了更改并将更改提交给 git。同时,另一个开发人员创建了一个不同的分支,在文件中的另一个位置对同一文件进行了更改,并将更改提交给 git。两个分支合并。为什么最初的开发人员更改消失了? git 不应该应用所有更改吗?

我认为可能与否,但这是一个 git 问题,而不是 gitlab。 因此,如果您合并第一个开发人员的代码,然后合并第二个...第一个代码消失,原因是: 他们修改了相同的代码块并发生冲突,您忽略第一个代码,使用第二个。

听起来像是一个糟糕的合并,当在具有相同文件更改的分支中合并时,文件应该发生冲突,然后您可以在 VSCode 或任何其他 IDE 中查看。然后您想在任何更改的部分上方“接受两个更改”。

当存在此类冲突时,通常会在合并过程中提出问题,例如:“需要解决冲突。解决并提交更改”。然后,冲突中的不同部分在相关文件中用 >>>>>>>>>><<<<<<<<< 与提交的 id 分开。

然后开发者需要解决冲突并提交合并。 开发者可以说 resolve using our versionresolve using their version。这很粗糙,因为其他更改完全被忽略了。

在这方面,我会说这不是 git 或 gitlab 的问题,而是以惰性方式合并提交的开发人员的问题 (resolve using our version ) 不知道他在做什么以及其中的含义...

如果您需要恢复被忽略的更改,您将不得不在合并之前的提交中返回,并手动解决它(您也可以尝试再次合并分支)。

我建议您在解决冲突时使用可视化编辑器(例如 'meld' 或 'sublime merge')。