2014-12-24 126 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

相关问题