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=================