答案 0 :(得分:397)
答案 1 :(得分:66)
执行此操作的首选方法是使用git update-index --skip-worktree <file>
,如in this answer所述:
assume-unchanged
适用于检查费用昂贵的情况 是否已修改一组文件;当你设置位时,git (当然)假设文件对应于该部分 索引尚未在工作副本中修改。所以它避免了一团糟 统计电话。只要文件在索引中输入,该位就会丢失 更改(因此,当文件上游更改时)。
skip-worktree
不止于此:即使git知道该文件 已被修改(或需要通过重置修改 - 硬件或 喜欢),它会假装它没有,使用的版本 索引代替。这种情况一直持续到索引被丢弃为止。
要撤消此操作,请使用git update-index --no-skip-worktree <file>
答案 2 :(得分:36)
答案 3 :(得分:0)
对于IntelliJ IDEA用户:如果要忽略文件(或文件)的更改,可以将其移至不同的Change Set
。
Local Changes
(Cmd + 9
)F6
将其移至另一个Change Set
答案 4 :(得分:0)
使用 Git 无法忽略对跟踪文件的更改。 Git FAQ explains this:
<块引用>Git 没有提供这样做的方法。原因是如果 Git 需要覆盖这个文件,比如在 checkout 时,它不知道对文件所做的更改是宝贵的应该保留,还是不相关的可以安全地销毁。因此,它必须走安全路线并始终保存它们。
尝试使用 git update-index 的某些功能很诱人,即假设未更改和跳过工作树位,但这些不能用于此目的,不应以这种方式使用。
如果您的目标是使用配置文件,那么最好的做法是添加示例或模板文件,然后让用户将其复制到位或让脚本创建适当的文件。然后您应该忽略实际配置文件的位置,只检查示例或模板。