2014-12-24 91 views
1

我在GitHub上有一個項目。項目中的某個組件需要我的項目中有一個配置文件P,其中的特定名稱和位置不能更改。Git:防止文件的本地和遠程副本互相覆蓋

爲了在本地計算機上以及某個遠程服務器上運行JUnit測試,我們需要在P中有兩個不同的內容和配置。問題是由於P在存儲庫中,所以Git使用pull和push命令覆蓋服務器或我的電腦上的P.

我想找到一種解決方案來防止Git拉動並推動覆蓋P.換句話說,我正在尋找一種解決方案,告訴Git,如果一個文件在遠程和本地有不同的內容是可以的。有沒有解決方案? (這個信息可能並不相關,但它是一個Android項目,需要P的組件是Roboelectric,運行JUnit測試的遠程服務器是Travis)。

回答

0

您唯一的選擇是從源代碼管理中刪除該文件。

git rm --cached P會告訴git到stop完全跟蹤它。

0

如果它已經在服務器上,並且你想讓git「忘記」文件,你需要使用.gitignore(這就是爲什麼它在那裏!)。

要停止跟蹤文件使用命令:

git rm --cached <file>

這種去除將在未來發生提交你怎麼做。

+0

謝謝你的回答。我按照你的指示,把P放在我的.gitignore中,也叫做「git rm --cached P」。但是,當我嘗試提交我的更改時,git正在嘗試刪除遠程副本,這也是不希望的。我想保持P的遠程副本不變。 – shahins

+0

經過一些研究發現,這將確實刪除您的遙控器上的文件,看看這個要點給你的答案:https://gist.github.com/canton7/1423106如果這適用於你告訴我編輯答案。 – PatoBeltran

相關問題