git update-index --assume-unchanged(忽略已跟踪文件的改动)

Git 忽略已跟踪文件的改动git update-index --assume-unchanged


Git之本地忽略

这个分同种情况:

本地永久忽略,效果的gitignore一样,只不过不适于写到gitignore中而已,可以自己建立一个本地独享的gitignore,然后git config --global core.excludesfile  文件的绝对路径,也可以直接将本地要忽略的文件添加到.git/info/exclude中。

不过上述都是针对没有跟踪的文件来说的,如果文件已经被跟踪了你如果在本地想要忽略它的改动,就不能使用以上的方法了。通俗地讲比如一个编译Android的脚本在其它电脑上都是使用的-j32来编译的,但是你的电脑配置没有别人的好,不能开到-j32,但是这个脚本是已经跟踪过的,你修改了就会在每次的git status中看到。对于这种情况Git有一个忽略改动的方法:

$ git update-index --assume-unchanged /path/to/file       #忽略跟踪

$ git update-index --no-assume-unchanged /path/to/file  #恢复跟踪

如下所示,

Lenovo@LENOVO-PC /c/WorkSpace2/BodyBuilding (master)
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   BodyBuilding.iml

no changes added to commit (use "git add" and/or "git commit -a")

   modified:   BodyBuilding.iml,这个文件是处于modified状态,现在要忽略他的改动,如下,

Lenovo@LENOVO-PC /c/WorkSpace2/BodyBuilding (master)
$ git update-index --assume-unchanged BodyBuilding.iml

Lenovo@LENOVO-PC /c/WorkSpace2/BodyBuilding (master)
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.

nothing to commit, working directory clean

Lenovo@LENOVO-PC /c/WorkSpace2/BodyBuilding (master)
$

好了,完成了。这个文件的改动就不会被显示出来。

================================END================================


你可能感兴趣的:(git update-index --assume-unchanged(忽略已跟踪文件的改动))