git的.gitignore 排除文件夹和文件 保留子文件夹
1.约定:
1 2 | / 是你本机的git目录的根,不是Linux系统的/(根); /指的是你在目录下执行 git init的那个目录,里面有.git文件夹的 |
例如:
1 2 3 4 | # cd /opt/test/ # git init # touch test.txt # ls -l /opt/test/test.txt |
上面test.txt的根指的就是test/
2.注释: .gitignore里注释用#号
3.目录结构
1 2 3 4 5 6 7 8 | # cd /opt/test/ # ls t1.txt test .txt t2/ t2 /t1 .txt t2 /t2 .cc t2 /t3/t .py |
在.gitignore里写入以下内容
情况一: 不想让,/opt/test/目录和所有子下的t1.txt 上传到仓库
1 | t1.txt |
情况二: 不想让,/opt/test/下的 t1.txt 上传
1 | /t1 .txt |
情况三: 不想让,所有后缀为txt的文件上传
1 | *.txt |
情况四:不想让,t2/目录下的文件和目录上传
1 | t2/* |
情况五:不想让,t3目录上传
1 | t2/t3/ |
情况六:想让,t2/目录下 t3/ 子目录上传
1 | !t2 /t3/ |
或
1 | ! /t2/t3/ |
注意
尾随的 /*
很重要:
模式 dir/
排除了一个名为 dir
的目录以及(隐式地)它下的所有内容.
使用 dir/
,Git 永远不会查看 dir
下的任何内容,因此永远不会将任何取消排除"模式应用于 dir.
模式
dir/*
没有说明dir
本身;它只是排除 dir
下的所有内容.使用 dir/*
,
Git 将处理
dir
的直接内容,让其他模式有机会取消排除"某些内容(!dir/sub/
).
如果已经提交过的文件或者文件夹怎么办?此时更改.gitignore文件对已经提交的文件是无效的。
1 首先,编辑.gitignore文件。
2 然后如果是单个文件,可以使用如下命令从仓库中删除:
git rm --cached logs/xx.log
如果是整个目录:
git rm --cached -r logs
如果文件很多,那么直接
git rm --cached -r .
如果提示某个文件无法忽略,可以添加-f参数强制忽略。
git rm -f --cached logs/xx.log
3 然后
git add .
git commit -m "Update .gitignore"
把被忽略的某个文件强制添加回去:
git add -f filename
ignore规则检查:
git check-ignore
4 一些规则
a# 忽略所有 .a 结尾的文件
!lib.a # 其他都不上传,但 lib.a 除外(lib.a上传)
/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/ # 忽略build/ 目录下的所有文件
doc/.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
参考:
https://www.it1352.com/2639226.html
https://learnku.com/articles/65721
http://t.zoukankan.com/Excr-p-12588385.html
https://blog.csdn.net/cainiao1412/article/details/109517218
https://www.cnblogs.com/superfeeling/p/15936393.html
https://www.cnblogs.com/shamshing/p/15357578.html
https://blog.csdn.net/nyist_zxp/article/details/119887324
https://www.jianshu.com/p/854672c36692
https://www.jb51.net/article/149021.htm
https://www.cnblogs.com/superfeeling/p/15936393.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
2021-08-26 jsp获取当前目录下的文件和目录,获取windows盘符