2017-09-08 97 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