2011-04-07 57 views
5

可能重复:
git: can i commit a file and ignore the content changes?Git:必须分发但忽略/未重新上传的文件?

我有一个简单的问题,我希望有一个简单的解决方案。我有一个仓库,有一个文件,每个人在克隆repo时都需要下载,但是这个文件不应该被重新加载(因为它是一个配置文件,与特定于数据库的用户名/密码和路径) - 只有在本地使用时才会进行更改。

我想要做的是忽略我在本地对该文件所做的任何更改,因此当我将更改推送到我的回购时,文件不会更新。这怎么能实现?

应该注意的是:

  1. 当我克隆回购协议,该文件显示出来,但是当我忽略它(仅限本地,而不是通过的.gitignore)我要untrack它,而当我这样做,并将更改推回到服务器,任何克隆回购的人都不会下载文件< <不受欢迎的行为。

  2. 如果我忽略该文件,但我不untrack它,该文件仍显示在我的工作目录,等待COMMITED < <意外的行为。

+0

确实。正如在该链接(有用的顺便说一句,谢谢!)正在使用git update-index --assume-unchanged(在这里彻底解释:http://goo.gl/UZi0E)。根据我所看到的,通过Tower.app无法做到这一点。 – AeroCross 2011-04-07 19:37:44

回答

6

提交一个示例文件,gitignore真实姓名,并让您的贡献者将示例复制到适当的位置,然后对其进行配置。或者,提供一个设置脚本来复制示例并执行这些步骤。

+0

这也是一个很好的选择(因为在我的应用程序中,没有太多配置文件需要修改,只有2个) - 我猜测,例如,Moodle(config-dist.php)和Wordpress(wp- config-example.php,如果我记得正确)在他们各自的版本控制系统中使用这种方法。 – AeroCross 2011-04-07 19:58:51

0

这可以通过涂抹/清除脚本正确解决。

或者,执行部署的脚本会重置用户名和密码。

弯曲跟踪和忽略不是解决此问题的方法。

希望这会有所帮助。

+1

谨慎举例?我对Git相当陌生,所以我不知道涂抹/干净脚本是什么。我也不理解“或者,执行部署的脚本重置用户名和密码”部分。 – AeroCross 2011-04-07 19:56:50