Git 忽略已跟踪文件的改动

分类:Git |

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  #恢复跟踪

如下所示,

1
2
3
4
5
6
7
8
9
10
11
12
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状态,现在要忽略他的改动,如下,

1
2
3
4
5
6
7
8
9
10
11
12
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=================


转自: http://my.oschina.net/xinxingegeya/blog/391432?fromerr=sRiU3UTn

Git
阅读( 3763 ) |