【Git】忽略已被仓库管理的文件的修改 |
您所在的位置:网站首页 › git忽略文件夹及文件的命令 › 【Git】忽略已被仓库管理的文件的修改 |
问题描述
我们知道 .gitignore 能够用来忽略未被 Git 仓库管理的文件/文件夹 (untracked files),也就是说,如果一个文件还没被加入到 Git 仓库中,而它的名字出现在 .gitignore 文件中,那么 git status 和 git add 等命令会自动忽略这个文件,就好像这个文件不存在一样。这一功能通常被用来排除一些不想加入到仓库中的临时文件,比如构建目录(build 文件夹)及 IDE 自动生成的文件/文件夹等。 不过,还有一种情况是:有的文件我们希望加入到仓库中,但又不希望 Git 跟踪其后续的修改。比如我们写了一个示例配置文件,已经加入到仓库中(为了让其他人能够知道配置文件格式是怎样的),而在自己本地使用该配置文件时需要在里面做针对性的修改(比如自己电脑上某个文件的绝对路径),此时这种修改自然不希望提交到 Git 仓库中。 但由于文件已经被 Git 管理,.gitignore 对于它们是无效的!我们在执行 git status 的时候,总能看到它们被修改的状态,尤其是存在这种情况的文件很多时(比如一个文件夹下所有的文件都存在希望被忽略的修改),git status 和 git diff 的结果会十分混乱,干扰我们本想关注的修改。而且我们在 git add 的时候,还需要格外注意排除这些修改,防止误将它们提交到仓库。 如何使 Git 忽略掉这些已经被仓库管理的文件的修改呢? 解决方法参见 stackoverflow: Ignore files that have already been committed to a Git repository 使用以下命令可以在本地目录中忽略掉指定文件的修改: git update-index --assume-unchanged撤销忽略的命令: git update-index --no-assume-unchanged查询被忽略的文件: git ls-files -v | grep "^[[:lower:]]"利用命令别名,方便查询被忽略的文件: git config --global alias.ignored '!git ls-files -v | grep "^[[:lower:]]"' # 执行 git ignored 即可查询被忽略的文件 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |