filter clean离开未提交的文件

时间:2014-02-21 10:02:28

标签: git

我是从git邮件列表(http://marc.info/?l=git&m=139287161008313&w=2

交叉发布的

所以,我想要一种在组织上共享部分gitconfig的方法,所以 我用过滤器更改并注释掉了一些部分:

[过滤“gitconfig-rmuser”]   clean = sed -e \“s / ^ \( email = \)。 / \ 1 / \” - e
\“s / ^ \( name = \)。 / \ 1 / \” - e \“s / ^ \( signingkey
= \)。
/ \ 1 / \“

然后: $ cat .gitattributes
* filter = ident-line
gitconfig filter = gitconfig-rmuser

哪个有效。唯一的问题是,如果我在之后再次更改它 承诺,我明白了:
$ git status
#HEAD在e872204分离了 #未提交更改的更改:
#modified:gitconfig

没有更改添加到提交
$ git diff gitconfig
$

所以回购品仍然很脏,我无法用它做任何事情。

1 个答案:

答案 0 :(得分:0)

修改过滤后的文件时,git看起来很脏。当git将文件转储到索引时,它会存储实际文件的校验和,而不是过滤文件的校验和。因此,在修改文件后,您需要git add它。这将修改索引,但是(如果您的修改对于过滤器是不可见的),则不会导致稍后提交更改。