I usually host a projects GitHub pages (docs/
) and build service configration files (e.g. .travis.yml
or .appveyor.yml
) together with the projects source in the master branch. When creating a release, github creates a zip and a tar archive (the so called zipball and tarball), which can also be created these links:
https://api.github.com/repos/:user/:project/tarball
https://api.github.com/repos/:user/:project/zipball
or for a specific release:
https://api.github.com/repos/:user/:project/tarball/:tag
https://api.github.com/repos/:user/:project/zipball/:tag
These archives contain all the files found in the projects repository. To exclude repository content from being added to these archives, e.g. the complete the docs/
folder, one can add files and folders marked as export-ignore
to the file .gitattributes
and add this file to the repository. Mine usually looks like this:
/docs export-ignore
.appveyor.yml export-ignore
.gitattributes export-ignore
.gitignore export-ignore
.travis.yml export-ignore
README.md export-ignore
The resulting zipballs and tarballs will no longer contain any of the files and folders marked as export-ignore
. This helps me to keep the automatically created source archives clean.