为了账号安全,请及时绑定邮箱和手机立即绑定

我可以‘git’提交一个文件并忽略它的内容更改吗?

我可以‘git’提交一个文件并忽略它的内容更改吗?

Git
跃然一笑 2019-07-04 12:30:25
我可以‘git’提交一个文件并忽略它的内容更改吗?我团队中的每个开发人员都有自己的本地配置。配置信息存储在一个名为devtargets.rb在我们的RAKE构建任务中使用。不过,我不希望开发人员破坏对方的devTarget文件。我的第一个想法是把那个文件放到.gitignore列表,使其不承诺于git。然后我开始思考:是否可以提交文件,但忽略对文件的更改?因此,我会提交该文件的默认版本,然后当开发人员在他们的本地机器上更改它时,git将忽略这些更改,并且当您执行git状态或git提交时,它不会出现在已更改的文件列表中。这有可能吗?这将是一个很好的特征.。
查看完整描述

3 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

这样做的首选方法是使用git update-index --skip-worktree <file>,如所解释在这个答案中:

assume-unchanged是为检查一组文件是否已被修改而设计的;当您设置位时,git(当然)假定与索引的该部分对应的文件没有在工作副本中被修改。因此,它避免了一个混乱的STAT调用。每当索引中的文件条目发生变化时(因此,当文件在上游更改时),此位就会丢失。

skip-worktree不仅如此:即使git知道文件已经被修改(或者需要重新设置-硬的或类似的),它也会假装没有修改,而是使用索引中的版本。这种情况一直持续到索引被丢弃为止。

若要撤消此操作,请使用git update-index --no-skip-worktree <file>


查看完整回答
反对 回复 2019-07-04
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

常见的做法似乎是创建一个devtargets.default.rb,然后指示每个用户将该文件复制到devtargets.rb(在.gitignore列表中)。例如,CakePHP对其数据库配置文件做同样的操作,该配置文件在不同的机器之间自然发生变化。


查看完整回答
反对 回复 2019-07-04
  • 3 回答
  • 0 关注
  • 1338 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信