Git 如果仅更改注释,则不要将文件显示为已修改

Git 如果仅更改注释,则不要将文件显示为已修改,git,ignore,Git,Ignore,我有一个文件列表,git说这些文件由于注释中的更改而被更改。当只更改注释时,如何将Git配置为忽略文件(不显示为已修改)。例如 原始文件包含: def foo(): #返回 回程杆 现在文件更改为(注释更改为#返回栏) def foo(): #回程杆 回程杆 现在,当我运行git status时,上面的文件显示为已修改。我希望这个改变被忽略。如何将Git配置为忽略这些文件 编辑: 日期和时间作为注释写入my.py文件中。当只有这些注释发生更改时,我不想将此文件与其他文件(需要提交更改的文件)

我有一个文件列表,git说这些文件由于注释中的更改而被更改。当只更改注释时,如何将Git配置为忽略文件(不显示为已修改)。例如 原始文件包含:

def foo():
#返回
回程杆
现在文件更改为(注释更改为
#返回栏

def foo():
#回程杆
回程杆
现在,当我运行
git status
时,上面的文件显示为已修改。我希望这个改变被忽略。如何将Git配置为忽略这些文件

编辑:
日期和时间作为注释写入my.py文件中。当只有这些注释发生更改时,我不想将此文件与其他文件(需要提交更改的文件)一起提交。

正如许多注释者所说,您解决了错误的问题

在git中实际上没有这样做的方法,因为它使用整个文件内容来创建SHA。将此SHA与前一个SHA进行比较。如果SHA更改,这意味着文件的内容已更改

我想不出这样做的方法,这将使文件内容在所有版本中保持一致。如果注释(日期/时间)不够重要,无法存储在git中,那么首先不要将它们添加到git中。如果是您的编辑器或IDE在执行此操作,则停止执行此操作或更改编辑器/IDE

你关于这是公司要求的评论最初对我来说是隐藏的。因为这是公司的一项要求,所以您需要让他们更改策略(这是复制git元数据中存储的用于提交的信息),或者接受策略并继续执行

git Dull将为您提供有关谁在进行更改以及何时进行更改的更好信息,因为它标识了谁在何时对文件进行了每次更改

编辑:
正如MarkAdelsberger在下面提到的,git状态确实使用了文件的统计信息,但是如上所述,这仍然导致了相同的答案。下面是a和a,它们解释了一些细节。

可能与的重复,但再加上一点,这种做法违背了Git@aws_apprentice这是正确的。我很好奇你想用这种行为解决什么具体问题。除了链接问题中的丑陋的黑客(我不推荐),当涉及到文件时,它真的是要么全有要么全无(gitignore)。由于git的设计,如果许多人可以对部分签入的文件进行编辑,事情可能会变得非常失控。如果你和一个同事有不同的意见,并且都在推,会发生什么?git将如何解决这一问题?@daanav如果你实现了这一点,你最终会发现到处都是不同步的内容,这将是地狱。我建议停止任何正在写入日期/时间的操作,而不是改变git的工作方式。这大部分是好信息,但请注意,该问题专门询问了
git状态
——哈希比较与哪些文件
git状态
报告被修改无关。而是基于文件的统计信息。现在,这仍然导致了相同的答案:你不能(即使你可以,你一旦做出承诺就会遇到哈希问题)谢谢@MarkAdelsberger,我不知道它会这样做。我一直认为它是基于散列的,因为您可以为mtime操作文件系统日期/时间。谢谢你的澄清。我将来会阅读git源代码,所以我不会说愚蠢的东西,我也不会说它愚蠢。这是一个相当普遍的误解,因为散列比较被高度吹捧;但问题是,在缓存文件之前,不会计算其哈希值(同时对工作树中的所有内容进行哈希运算会太慢)。这确实指出了我应该修正的地方——当我说
状态
不使用散列时,有一半是正确的——有一半时间它显示的是未分级的更改——但是阶段性更改当然是使用对象散列计算的。