我有一些文件vim.gitignore,SVN.gitignore和CVS.gitignore(在我的硬盘上传播).
我可以简单地将这些gitignore文件.gitignore包含在新Git项目的文件中吗?
编辑:我已经有一个全局忽略文件.
我只是想忽略不同类型项目中的不同文件,这可能吗?
我正在考虑从subversion迁移到git.我们使用subversion为我们的系统管理员管理诸如配置文件之类的东西之一.为此,我们将$URL$每个文件放入,该文件扩展到subversion树中文件的位置.这使管理员可以查看某个任意主机上的文件,并找出它来自树的位置.
我能找到的最接近的模拟是gitattributes.有filter=指令,但似乎git没有向过滤器传达它过滤的文件名,这是转换$URL$成路径所必需的.
还有ident指令,它将变成$Id$blob哈希.如果可以将其映射回路径名,这可能是有用的,但我的git-fu不够强大.
有什么建议?
工作流程如下:
问题
将此文件树视为我的开发存储库.
- foo/
- .git/
- [...]
- bar/
- backupclient.py
- supersecretstoragecredentials.ini
对于开发,supersecretstoragecredentials.ini需要使用有效凭据填写 - 而我仍然需要在存储库中保留它的干净版本,以便其他用户可以轻松设置其凭据.
可能的解决方案
.gitignore supersecretstoragecredentials.ini并创建一个supersecretstoragecredentials.ini-example,
supersecretstoragecredentials.ini-example到supersecretstoragecredentials.ini.backup.pygit会忽略该位置,例如 supersecretstoragecredentials_local.ini.正如kan指出的那样,这两种解决方案类似,但在工作流程方面并不完全相同.
还有其他选择吗?是否git拥有某种功能来协助解决这类问题?
你会如何在git中设置这个场景:
我的源码有一个设置文件,其中包含配置设置,如数据库连接凭证等...(这是一个Drupal源码,我指的是settings.php)
当开发人员克隆源时,他们需要进入并更改特定于其环境的设置.当然,这些变化不应该被推回原点.同时我希望他们能够使用这个默认模板(因为大多数模板都不会被更改).
所以.gitignore在这里不起作用,因为我想要它们的第一个克隆.我是否需要教导每个新开发者git update-index --assume-unchanged?
是不是有一个更明智的方式来做到这一点?