2012-12-05 153 views
1

我使用版本控制的yaml文件來跟蹤與軟件版本相關的軟件包,並具有編輯跟蹤文件不同部分的多個作業(運行於Jenkins)。當我嘗試將更改推送到文件時,根據文件的哪一部分被編輯,我有時會遇到合併衝突。例如:Git合併與Yaml文件衝突

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

這些文件是否自動生成? –

+0

是的,它們也會自動更新。 – spizzak

回答

2

對你而言,最好的可能是將此文件添加到.gitignore而不是版本。當你更新你的文件時,你可以在git-hooks中生成它。

如果這不是一個解決方案,您可以使用git checkout --theirs -- <path/file>git checkout --ours -- <path/file>。然後,您git addgit commit,仍然需要手動執行一些步驟,但至少您不需要在文件中手動解決這些衝突。

但最好的是真的忽略自動生成的文件。