Ich habe ein paar Open-Source-Projekte, die ich verwalte. Ich habe die .tar.gz
Versionen für sie in einem Verzeichnis auf einem Webserver, den ich ausgeführt habe, gepostet. Ich würde sie gerne auf GitHub veröffentlichen. Gibt es eine einfache Möglichkeit, das Release und eine Signatur für das Release zu veröffentlichen? Meine Benutzer sind nicht anspruchsvoll genug, um das Release mit git herunterzuladen; Sie möchten eine .tar.gz
Datei herunterladen und installieren. Einige von ihnen wollen vielleicht sogar die Unterschrift verifizieren.Wie poste ich ein "Release" auf GitHub?
Antwort
GitHub hat soeben angekündigt, ihre neue "GitHub veröffentlicht" -Funktion, die wie genau klingt, was Sie nach:
Überprüfen Sie die GitHub Downloads section - keine Notwendigkeit für Git, Dateien von dort herunterladen.
[Depreciated] (https://github.com/blog/1302-goodbye-uploads), verwenden Sie stattdessen [Releases] (https://github.com/blog/1547-release-your-software). –
Sie können einen Tarball jeden Tages wie so holen:
https://github.com/visionmedia/express/tarball/2.5.4
Eine nette Option Github unterstützt wird Tagging und automatische tar.gz/zip-Erstellung auf diesem Tags basieren. Es erleichtert die Veröffentlichung von Veröffentlichungen.
http://learn.github.com/p/tagging.html
Auf der Durchführungs-/Zweig, Sie möchten als Release markieren, tun
git tag <release_tag>
dann
git push --tags
dann auf github.com/user/ Repo/Tags, können Sie alle markierten Releases sehen. Sie können direkt mit diesen Dateien verlinken, wie in jimws Antwort.
Es gibt zwei Probleme mit einem einfachen Tag. # 1 - Ich kann diese '.tar.gz' Versionen nicht digital signieren. # 2 - Meine Benutzer benötigen die 'configure' und' missing' und andere 'autoconf'-generierten Junks, die nicht in das git-Repository gehören. – vy32
@ vy32, können Sie jetzt [kommentierte Tags] (https://git-scm.com/book/de/v2/Git-Basics-Tagging#_annotated_tags) für das erste Problem verwenden, und über das zweite - erstellen Sie ein [ git hook] (http://githooks.com/) um das zu tun –
Es gibt ein paar Hilfsprogramme, um zu tun, was Sie brauchen.
github_upload (Ruby) : https://github.com/github/upload
App::gh (Perl) : https://metacpan.org/module/App::gh::Command::Upload
Treffen Sie Ihre Wahl :)
Leider scheint das github_upload Skript nicht mehr zu funktionieren. – vy32
Ich habe einen ähnlichen Anwendungsfall wie Sie - aber ich bin noch nicht dazu gekommen, eines dieser Tools zu benutzen.Gut zu wissen über den Status von 'github_upload'. Vielleicht kannst du dem Perl einen weiteren Schuss geben. Versuchen Sie 'cpanm' zu verwenden und lassen Sie alle Abhängigkeiten herausfinden. – mithun
andere erhältliche Option könnte von http://bintray.com verteilen. Es integrates great with GitHub und gibt Ihnen so viel mehr beim Verteilen von Binärdateien.
Ich möchte auch andere Arten von Dateien (kompilierte Binärdateien, ...) hochladen und github-Versionen von der Kommandozeile mit einem ziemlich einfach zu bedienenden Werkzeug bearbeiten, ich habe etwas dafür gemacht. Es heißt github-release. Es ist im Grunde eine benutzerfreundliche Abstraktion über die Github Releases API. Es ist in Go geschrieben, also habe ich mir die Freiheit genommen, es für OSX/linux/windows/FreeBSD zu kompilieren, und Sie können natürlich die Binärdateien von der releases page herunterladen.
DISCLAIMER: Ich bin der Autor.
verstehe ich immer noch etwas nicht. Wo lebt die Binärdatei im Repo? Muss ich einen anderen Zweig mit der Datei darin erstellen? Wirklich verwirrt. – ThomasReggi
Ist Ihnen nicht aufgefallen, dass Sie die Binärdatei direkt in das Release oder mit dem Upload-Befehl von github-release hochladen können. – ThomasReggi
Gibt es eine Möglichkeit, den Befehl Git von einem beliebigen GIT-Client aus zu verwenden? – Royi
das ist überhaupt nicht nützlich, ich verstehe immer noch nicht, wie man ein Release erstellt, nach dem Lesen dieser – Nulik