我正在使用修订版控制的yaml文件来跟踪与软件版本相关联的软件包,并且有多个作业(在Jenkins上运行)编辑跟踪文件的不同部分。当我尝试将更改推送到文件时,我有时会遇到合并冲突,具体取决于编辑文件的哪个部分。例如:
HEAD:
...
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
...
我是否可以使用不同的合并策略来解决此问题而无需手动解决冲突?
答案 0 :(得分:2)
在您的情况下,最好的方法是将此文件添加到.gitignore
而不是版本。然后,当您更新文件时,可以在git-hooks中生成它。
如果这不是解决方案,您可以使用git checkout --theirs -- <path/file>
或git checkout --ours -- <path/file>
。然后,您git add
和git commit
仍然需要手动执行一些操作,但至少您不需要在文件中手动解决这些冲突。
但最好的办法是忽略自动生成的文件。