一个人附加或预先定位的文件经常会出现合并冲突。
E.g。我们在我们的存储库的顶层有一个ChangeLog.txt
文件。每当有人进行实质性更改时,对ChangeLog.txt
的客户友好描述都会被添加到ChangeLog.txt
之前。这会导致频繁的合并冲突,因为不同的开发人员合并单独的更改,或者单个开发人员重新定义并更改提交顺序,从而UpgradeDatabaseSchema.pm
更改顺序。
(我们还有一个ChangeLog.txt
perl库,它同样具有N个条目pr。版本,它也容易出现合并冲突,但让我们坚持ChangeLog.txt
)。
如何很好地避免这种合并冲突?
我唯一想到的是一个目录结构,而不是提交changeLog
,我们将条目提交到单独文件中的changeLog/
v1.1/
fooFeature.txt
bug-4524-fix.txt
refactoredWhatever.txt
v1.2/
bug-4522-fix.txt
barFeature.txt
removedFoobar.txt
目录:
ChangeLog.txt
然后让ChangeLog.txt
从例如git log
构建以某种方式连接这些文件(而不是在git中跟踪/提交ChangeLog.txt
)。这有点麻烦......
我们还简要地考虑过仅使用ChangeLog.txt
而不是git log
,但不会因为受众群体不同:git log适用于开发人员,DataGrid
适用于客户。此外,如果不改变git历史记录并打破每个人的分支,就无法轻易更改SN.Reload
中提交的描述。
所以:
还有其他方法可以忽略我们吗?
答案 0 :(得分:2)
您还可以对单个文件使用“union”合并策略,如下所述:http://krlmlr.github.io/using-gitattributes-to-avoid-merge-conflicts/
只需在.gitattributes
中添加一行ChangeLog.txt merge=union