2017-09-08 93 views
0

我正在使用git p4 rebase和git LFS。不幸的是,在将P4内容同步到本地git repo之后,它将从.gitattributes中删除所有现有的LFS跟踪文件,并将文件添加到已同步的.gitattributes中。合并远程.gitattribute文件与本地.gitattribute文件与合并策略联合

例如:

本地和远程.gitattributes同步之前提交

File 1 filter=lfs diff=lfs merge=lfs -text 
    File 2 filter=lfs diff=lfs merge=lfs -text 
    File 3 filter=lfs diff=lfs merge=lfs -text 

本地.gitattributes文件同步后,现在

File 4 filter=lfs diff=lfs merge=lfs -text 
    File 5 filter=lfs diff=lfs merge=lfs -text 

,如果我推到远程,我会失去跟踪在1,2,3。所以,我推之前,我需要合并远程.gitattributes与当地.gitattributes文件文件以获取

File 1 filter=lfs diff=lfs merge=lfs -text 
    File 2 filter=lfs diff=lfs merge=lfs -text 
    File 3 filter=lfs diff=lfs merge=lfs -text 
    File 4 filter=lfs diff=lfs merge=lfs -text 
    File 5 filter=lfs diff=lfs merge=lfs -text 

这样我就可以推到遥远。

+0

你的说法似乎是正确的:使用UNION合并功能'.gitattributes '应该给你正确的结果。假定你可以在'.gitattributes'中指定一个文件的联合合并,你应该可以修改'.gitattributes'来请求联合合并。那么,你的问题是什么? – torek

+0

我曾尝试将下列内容放入.gitattributes中,“.gitattributes merge = union”它没有工作 –

+0

我不是p4的专家,但是如何避免冲突?你不使用任何Xtheirs选项 – max630

回答

0

以下工作

git show origin/master:.gitattributes > ./.gitattributes.theirs touch blankFile git merge-file --union .gitattributes blankFile .gitattributes.theirs

,如果你不想overrride .gitattributes你可以做

git merge-file -p --union .gitattributes blankFile .gitattributes.theirs > .gitattributes.new