2

我正在使用修订控制的 yaml 文件来跟踪与软件版本关联的包,并且有多个作业(在 Jenkins 上运行)编辑跟踪文件的不同部分。当我尝试将更改推送到文件时,有时会出现合并冲突,具体取决于文件的哪个部分被编辑。例如:

头:

...

Package6:
    Name: motorControl
    Version: 1.2
    Size: 341
Package7:
    Name: None
    Version: None
    Size: None
...

本地副本:

...

Package6:
    Name: None
    Version: None
    Size: None
Package7:
    Name: eyeCandy
    Version: 3.2
    Size: 1087
...

是否有不同的合并策略可以用来解决此问题而无需手动解决冲突?

4

1 回答 1

2

在您的情况下,最好的办法是将此文件添加到.gitignore而不是对其进行版本化。然后,您可以在更新文件时在 git-hooks 中生成它。

如果这不是解决方案,您可以使用git checkout --theirs -- <path/file>or git checkout --ours -- <path/file>。然后,你git addgit commit,还有一些步骤需要手动完成,但至少你不需要在文件中手动解决这些冲突。

但最好的办法是真正忽略自动生成的文件。

于 2012-12-06T16:22:46.493 回答