使用案例:我们有一些我们想要跟踪的项目元数据文件,但很少(如果有的话)提交,尽管它们始终在本地更新(不同的用户有不同的项目路径)。在正常情况下,除非明确要求,否则用户不应该提交这些文件。可以跟踪文件,但不显示它们更新?
Git ignore用于未跟踪文件。
是否有类似的功能让git忽略被跟踪的文件?有没有一种方法可以在中央仓库中更改,并会反映所有用户?
使用案例:我们有一些我们想要跟踪的项目元数据文件,但很少(如果有的话)提交,尽管它们始终在本地更新(不同的用户有不同的项目路径)。在正常情况下,除非明确要求,否则用户不应该提交这些文件。可以跟踪文件,但不显示它们更新?
Git ignore用于未跟踪文件。
是否有类似的功能让git忽略被跟踪的文件?有没有一种方法可以在中央仓库中更改,并会反映所有用户?
是否有一种方法可以在中央仓库中进行更改,并反映所有用户?
没有在一般的(分布式)上下文中:任何钩子或进程都不能在中心位置“改变”并且被所有分布式下游回购站选择。
如果您的用户在central template之后创建了自己的回购,那么某些默认挂钩可以引用中央脚本(即,如果我们在同一网络上的用户说话,共享磁盘中所有用户都可访问的脚本)。
adymitruk的answer认为使用开发分支,因此不承诺‘公开’分支(即推即分支/拉)私人变化。
这都很好,但:
这将是更好地使用filter driver(其在.gitattributes
文件中声明和可以通过克隆传播)有:
a smudge
脚本:
一个clean
脚本:
你的答案总是出现,谢谢你! – 2011-05-08 11:43:03
$ git update-index --assume-unchanged <filename>
虽然这只适用于本地。
值得注意的是相反的动作:'git update-index --no-assume-unchanged
使用开发分支。针对您的环境提交具体的更改。与我们的战略重新融合。现在这些更改将永远不会被分享到公共分支。其他答案缺少使用开发分支的要点。
好点:我们错过了“开发分支”:+1。但是这并没有解决OP的具体需求,即强制以某种方式对所有这些文件进行修改。 -1。我已经在你的回答中附带了评论。 – VonC 2011-05-09 05:31:53
是的。像@VonC提到的那样,这并不是真正的问题,而是相关的。谢谢。 – 2011-05-09 09:39:34
[git:忽略* *版本控制的文件]的可能重复(http://stackoverflow.com/questions/5011390/git-ignoring-a-file-which-is-version-controlled) – 2011-05-08 10:38:25
I猜猜,这个问题是Git Duplicates SO竞赛的赢家。 – 2011-05-08 10:39:06
@Pavel:除了这些重复内容之外,没有一个在OP的上下文中提到了实际的解决方案,这是一个过滤器驱动程序。请参阅下面的答案。 – VonC 2011-05-08 10:49:47