2016-12-28 71 views
0

我正在開發一個項目並希望合併來自git存儲庫的更改。無法合併未跟蹤的工作樹

遠程回購不會忽略一些構建文件,但我已經將這些構建文件添加到我的gitignore(因爲使用不同的構建系統,構建的文件顯然不同)。

所以,當我嘗試與合併:

git merge -X ours ns3-mmwave-ext/master 

我得到一個錯誤,指出這些構建文件將與合併被覆蓋。

我不希望他們被覆蓋,所以我也跟着這個答案 https://stackoverflow.com/a/26639255/4126652

,並試圖做的事:

git add -f * // Without -f git is complaining because those build files are in my gitignore 
git stash 
git merge -X ours ns3-mmwave-ext/master 

但仍然顯示了同樣的錯誤,同樣未跟蹤工作樹中的文件將被合併覆蓋。

請注意,ns3-mmwave-ext是一個遠程並已被提取。

編輯:

我可以obbiously清潔構建文件,但在生成過程是很長,我不想重新構建整個事情只是一些小的改動。

編輯2:

我不是一個貢獻者遠程回購,所以我不能只是刪除遠程生成的文件。

+0

我的一般建議是不要將構建文件添加到您的Git倉庫。只有源文件和其他相關的預建東西真的屬於那裏。 –

+0

@TimBiegeleisen我知道,但這不是我的項目,我不是一個貢獻者,這些人不會忽略構建文件。 –

+0

這些版本化的遠程構建文件實際上是用來啓動程序的,還是僅僅是工件? –

回答

0

我的建議是在其他本地tmp分支中提交您的build文件夾。然後reset您的local/masterns3-mmwave-ext/master,然後拉。

# First remove 'builds' folder from .gitignore 

$ git checkout tmp 
$ git commit -am 'builds folder commmit' 

$ git checkout master 
$ git fetch 
$ git reset --hard ns3-mmwave-ext/master 
$ git pull origin ns3-mmwave-ext/master 

$ git checkout tmp 
$ git rebase master     # now your 'builds folder commit' will be kept in top here 
相關問題