六
26
有个git工程:
root/ ├── src │ └── aaa ├── tmp │ └── bbb └── doc
然后有几个目录是git archive打包时希望排除的。查看了一下手册git help archive,里面提到man gitattributes可以知道如何添加export-ignore属性,来排序不希望的目录。
经过十几分钟的折腾与搜索,终于弄明白.gitattributes的用法和里面的目录/文件的表达方法了。记录如下:
.gitattributes可以放在任意目录下。并且根据目录的不同,内容表达也有区别。 例如想要排除 src/aaa/目录和tmp/bbb/目录,可以这样写:
1、root/目录下添加.gitattributes文件,内容如下:
/src/aaa export-ignore
/tmp/bbb export-ignore
2、或者分别在src/和tmp/目录里各自添加文件:
# src/.gitattributes
/aaa export-ignore
# tmp/.gitattributes
/bbb export-ignore
这里最蛋疼的就是目录的表达,必须以/开始,而且不能以/结尾。如果想要指定某个子目录,只用一个aaa只会被解释为当前目录里的文件,子目录只有写全路径。。。
另外,如果跑去 src/目录执行git archive master,那么所有的父目录都不会被导出,父目录里的.gitattributes也是无效的。
嗯。就这么多。备忘一下。