git中的gitignore文件
上面这些文件我想忽略掉,省的每次提交都在一堆文件中找要交的
1.创建.gitignore文件
找到项目根目录,创建.gitignore文件
或者命令创建:touch .gitignore
打开创建好的文件,写入要忽略的文件,保存
暂存添加的.gitignore文件:git add .gitignore
,提交git commit -m "Update .gitignore to ignore some files "
2.效果
可以看到只剩下57个了,不是原来的1100个了
3.如果想清除已经追踪的文件
例如:执行以下命令清除缓存,以便 Git 忽略已存在的 .pyc 文件:
git rm --cached *.pyc
git rm --cached -r __pycache__/
然后再提交更改:
git commit -m "Remove tracked .pyc files and __pycache__ directories"
完成以上步骤后,Git 将会忽略 .pyc 文件和 pycache 目录中的内容。
4.常见的文件忽略方式
1.如果你想只忽略一个特定的文件,你需要提供该文件在项目根目录下的完整路径。
例如,如果你想忽略位于根目录下的 text.txt 文件,你可以做如下操作:
/text.txt
2.而如果你想忽略一个位于根目录下的 test 目录中的 text.txt 文件
/test/text.txt
3.如果你想忽略所有具有特定名称的文件,你需要写出该文件的字面名称。
例如,如果你想忽略任何 text.txt 文件,你可以在 .gitignore
中添加以下内容:
text.txt
在这种情况下,你不需要提供特定文件的完整路径。这种模式将忽略位于项目中任何地方的具有该特定名称的所有文件。
4.要忽略整个目录及其所有内容,你需要包括目录的名称,并在最后加上斜线 /:
test/
这个命令将忽略位于你的项目中任何地方的名为 test
的目录(包括目录中的其他文件和其他子目录)。
5.需要注意的是,如果你只写一个文件的名字或者只写目录的名字而不写斜线 /,那么这个模式将同时匹配任何带有这个名字的文件或目录:
#匹配任何名字带有 test 的文件和目录
test
6.如果你想忽略任何以特定单词开头的文件或目录怎么办?
例如,你想忽略所有名称以 img 开头的文件和目录。要做到这一点,你需要指定你想忽略的名称,后面跟着 * 通配符选择器,像这样:
img*
这个命令将忽略所有名字以 img 开头的文件和目录。
7.但是,如果你想忽略任何以特定单词结尾的文件或目录呢?
如果你想忽略所有以特定文件扩展名结尾的文件,你需要使用 * 通配符选择器,后面跟你想忽略的文件扩展名。
例如,如果你想忽略所有以 .md 文件扩展名结尾的 markdown 文件,你可以在你的 .gitignore 文件中添加以下内容:
*.md
这个模式将匹配位于项目中任何地方的以 .md 为扩展名的任何文件。
8.前面,你看到了如何忽略所有以特定后缀结尾的文件。当你想做一个例外,而有一个后缀的文件你不想忽略的时候,会发生什么?
假设你在你的 .gitignore 文件中添加了以下内容:
.md
这个模式会忽略所有以 .md 结尾的文件,但你不希望 Git 忽略一个 README.md 文件。
要做到这一点,你需要使用带有感叹号的否定模式,即 !,来排除一个本来会被忽略的文件:
# 忽略所有 .md 文件
.md# 不忽略 README.md 文件
!README.md
在 .gitignore 文件中使用这两种模式,所有以 .md 结尾的文件都会被忽略,除了 README.md 文件。
需要记住的是,如果你忽略了整个目录,这个模式就不起作用。
例如,你忽略了所有的 test 目录:
test/
9.假设在一个 test 文件夹内,你有一个文件,example.md,你不想忽略它。
你不能像这样在一个被忽略的目录内排除一个文件:
# 忽略所有名字带有 test 的目录
test/# 试图在一个被忽略的目录内排除一个文件是行不通的
!test/example.md
5.显示.文件
名字前面有点(.)的文件默认是隐藏的。
当单独使用 ls 命令时,隐藏的文件是不可见的。要从命令行查看所有的文件–包括隐藏的文件–请在 ls 命令中使用 -a 标志,如图所示:
ls -a
6.修改gitignore
如果后期修改了gitignore文件
比如我想忽略*.txt,pth.tar等
文件
将gitignore当作普通文件修改,暂存然后提交即可
结果: