git忽略已提交文件

在使用git中,我们要忽略某些文件,可以在.gitignore文件中添加即可实现。但需要在这些文件未提交,未被git追踪(tracked)的情况下才有效。

如果文件已被提交,追踪的情况下,有两种处理方法:

一:

先取消git追踪文件 git rm --cached config.txt 然后在.gitignore中添加需要忽略的文件 config.txt

二:

git update-index --assume-unchanged config.txt

这个命令在文档中的描述:

When the "assume unchanged" bit is on, Git stops checking the working tree files for possible modifications, 
so you need to manually unset the bit to tell Git when you change the working tree file. 
This is sometimes helpful when working with a big project on a filesystem that has very slow lstat(2) system call (e.g. cifs).
当打开这个设置,Git停止检查工作区的文件变更情况,所以在你需要恢复追踪时,你要手动关闭这个设置来告诉GIT恢复追踪。

这个命令在大项目文件,很慢lstat(2) 系统的工作情境下很有用。

很慢的lstat(2) 系统不确定什么意思,大概意思就是有一种工作情景,文件体积很大,电脑硬盘读取写入速度又很慢,这个时候频繁变更文件,每一次变更GIT都需要计算文件的变更,

更新工作区,那可想而知,会很卡,所以这个命令的用处,

改之前先设置暂时不追踪,git update-index --assume-unchanged config.txt

然后改改改,改完了,设置回继续追踪 git update-index --no-assume-unchanged config.txt

看到这里,我们还是推荐使用方法一来达到我们忽略已追踪文件的需求,方法一更正统一些。方法二就有点取巧了,在多人一起工作的情况下容易出问题。

文档中还有一段注释,也表明了方法二可以用来忽略已提交文件的跟踪,类似.gitignore的职责,但这个是下等的(coarse)哈哈哈哈哈哈【大笑】

This option can be also used as a coarse file-level mechanism to ignore uncommitted changes in tracked files
 (akin to what .gitignore does for untracked files).






你可能感兴趣的:(git)