I have a few open source projects that I manage. I've been posting the .tar.gz
releases for them to a directory on a webserver I run. I would like to post them to github. Is there a simple way to post the release and a signature for the release? My users aren't sophisticated enough to download the release with git; they want to download and install a .tar.gz
file. Some of them may even want to verify the signature.

- 28,461
- 37
- 122
- 246
7 Answers
GitHub have just announced their new "GitHub Releases" feature, which sounds like exactly what you're after:

- 1,364
- 1
- 13
- 17
-
1Is there a way to do so using Git command from any GIT client? – Royi Sep 21 '15 at 05:39
-
1this is not useful at all, I still do not understand how to create a release, after reading this – Nulik Oct 22 '17 at 00:24
One nice option github supports is tagging, and automatic tar.gz/zip creation based on those tags. It makes publishing releases really easy.
http://learn.github.com/p/tagging.html
On the commit/branch that you'd like to mark as a release, do
git tag <release_tag>
then
git push --tags
then, on github.com/user/repo/tags, you can see all tagged releases. You can link straight to those files, like in jimw's answer.

- 2,172
- 13
- 11
-
9There are two problems with a simple tag. #1 - I can't digitally sign these `.tar.gz` releases. #2 - my users need the `configure` and `missing` and other `autoconf`-generated junk that doesn't belong in the git repository. – vy32 Mar 31 '12 at 14:31
-
@vy32, you can now use [annotated tags](https://git-scm.com/book/en/v2/Git-Basics-Tagging#_annotated_tags) for the first issue, and about the second - create a [git hook](http://githooks.com/) to do that – Eliran Malka Apr 04 '17 at 08:19
Other awesome option might be distributing from http://bintray.com. It integrates great with GitHub and gives you so much more when distributing binaries.

- 22,610
- 5
- 62
- 90
I you'd also like to upload other kinds of files (compiled binaries, ...) and edit github releases from the commandline with a rather easy-to-use tool, I made something for that. It's called github-release. It's basically a user-friendly abstraction over the Github releases API. It's written in Go so I took the liberty of cross-compiling it for OSX/linux/windows/FreeBSD, and you can download the binaries from the releases page, of course.
DISCLAIMER: I am the author.

- 1,847
- 21
- 30
-
I still don't understand something. Where does the binary live within the repo? Do I have to create another branch with the file in it? Really confused. – ThomasReggi Jan 06 '15 at 20:05
-
Didn't realize that you can upload the binary directly to the release or with the github-release upload command. – ThomasReggi Jan 06 '15 at 20:34
You can fetch a tarball of any tag like so:
https://github.com/visionmedia/express/tarball/2.5.4

- 2,548
- 15
- 12
There are a few utilities to do what you need.
github_upload (Ruby) : https://github.com/github/upload
App::gh (Perl) : https://metacpan.org/module/App::gh::Command::Upload
Take your pick :)

- 316
- 3
- 3
-
-
I have a similar use case as you do - but haven't gotten around to using any of these tools yet. Good to know about the status of `github_upload`. Maybe you can give the perl one another shot. Try to use `cpanm` and have it figure out all the dependencies. – mithun Apr 07 '12 at 18:37
Check out the GitHub Downloads section - no need for git at all to download files from there.

- 37,325
- 7
- 45
- 73
-
5[Depreciated](https://github.com/blog/1302-goodbye-uploads), use [Releases](https://github.com/blog/1547-release-your-software) instead. – 0 _ Sep 15 '13 at 23:30