一、git打包
采取其他打包工具将整个工作区打包,会把版本库等一些其他不必要的信息打包,git提供了一个打包命令
#基于最新的提交进行打包
git archive -o new.zip HEAD
#基于tag进行打包,发布源码
git archive --format=tar --prefix=1.0/ v1.0 | gzip > test-1.0.tar.gz
二、git文件忽略
整个文章参考了《git权威指南》 对于不想提交到版本库中的文件或者目录,git提供了文件忽略的功能
1、全局式“独享式”忽略
与之对应,就是版本库传递的时候,也会出现在他人的工作区,并同时生效
touch .gitignore git add .gitignore git commit -m "add .gitignore"
Git忽略语法:
1、以#开始的行会被忽略
2、可以使用多种通配符
3、如果名称的最前面是一个路径分隔符(/),表明要忽略的文件在此目录下,而非子目录的文件
4、如果名称的最后面是一个路径分隔符(/),表明忽略的是整个目录,同名文件不忽略,否则同名的文件和目录都忽略
5、通过在名称的最前面添加一个感叹号(!),代表不忽略
举例:
*.a #忽略所有 .a 结尾的文件
!lib.a #但 lib.a 除外
/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/ # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
- .gitignore可以放在任何目录中
- 忽略只能针对未跟踪文件有效,对于已经加入版本库的文件无效
- 当一个早期的gitignore文件已经commit了之后,那么修改了gitignore文件之后,需要重新清下缓存,命令:git rm -r --cached ignore_file
2、本地“独享式”忽略
这种忽略,在版本库传递的时候,比如克隆的时候,不会因为出现在他人的工作区导致忽略他人工作区中的文件
git config --global core.excludesfile ./.gitignore
\\这个文件可以存放在任何位置