git版本控制之忽略规则.gitignore

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012893325/article/details/78716497

git版本控制之忽略规则.gitignore

在git版本控制中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .gitignore 文件的方法(如无,则需自己手工建立此文件)。

匹配的规则例如:

这里写图片描述
cat .gitignore
# 此为注释 –– 将被 Git 忽略
*.svn # 忽略所有 .svn 结尾的文件
!lib.a # 但 lib.a 除外
/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
log/ # 忽略 log/ 目录下的所有文件
output/*.txt # 会忽略 output/notes.txt ;但不包括 output/server/arch.txt

按照上述方法定义后发现并未生效

原因: .gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

首先说一下 git rm 和 git rm –cached file_path

当我们需要删除暂存区或分支上的文件, 同时工作区也不需要这个文件了, 可以使用

git rm file_path 

当我们需要删除暂存区或分支上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制, 可以使用

git rm --cached file_path

解决: 先把本地缓存删除(改变成未track状态),然后再提交:

git rm -r --cached  . ##谨慎使用 .,可以参照git rm --cached file_path
git add  .
git commit -m 'update .gitignore'
git push

注意:

.gitignore 文件的用途:
该文件只能作用于那些从来没有被 Git 记录过的文件(从未 add 和 commit 过的文件)。如果文件曾经被 Git 记录过,那么.gitignore 就对它们完全无效。

猜你喜欢

转载自blog.csdn.net/u012893325/article/details/78716497
今日推荐