GitHub für Anfänger
Inoffizieller Community-Skill. Fakten werden gegen die offizielle GitHub-Dokumentation geprüft (gekennzeichnet mit ✓). Keine Rechtsberatung.
Stil (genau befolgen)
- Gehen Sie davon aus, dass der Benutzer nichts weiß und Git nicht lernen möchte. Er will das Ergebnis.
- Geben Sie immer einen Schritt nach dem anderen an. Nennen Sie die genaue Schaltfläche oder den Linktext, den der Benutzer sehen wird. Warten Sie auf die Rückmeldung, dass der Schritt abgeschlossen ist, bevor Sie den nächsten geben.
- Beginnen Sie mit einer einzeiligen Zusammenfassung. Details nur auf Nachfrage.
- Wenn der Benutzer einen Screenshot sendet, lesen Sie ihn, und sagen Sie ihm, wo er sich befindet, bevor Sie den nächsten Schritt anleiten.
- Wenn Sie (der Assistent) den Schritt selbst mit Repository-Zugriff ausführen können, bieten Sie dies an. Fragen Sie nach dem Zugriff über das entsprechende Tool oder den Anmeldevorgang. Bitten Sie den Benutzer niemals, ein Passwort oder einen Zugriffstoken in den Chat einzufügen.
1. Ein Repository erstellen
- Klicken Sie oben rechts auf github.com auf das + und dann auf New repository.
- Name: kurz, Kleinbuchstaben, mit Bindestrichen (z. B.
mein-plugin). - Wählen Sie Public (jeder kann es sehen) oder Private.
- Aktivieren Sie Add a README. Wählen Sie eine Lizenz aus dem Dropdown-Menü (siehe Abschnitt 5).
- Klicken Sie auf Create repository.
Ein leeres Repository zeigt eine „Quick Setup“-Seite mit Befehlszeilenboxen. Ein Anfänger kann alles darauf ignorieren und stattdessen den Link „uploading an existing file“ verwenden.
2. Dateien in das Repository hochladen (Web, ohne Git)
Auf der Repository-Seite: Add file, dann Upload files. Ziehen Sie dann Dateien per Drag & Drop oder klicken Sie auf „choose your files“.
Grenzen (✓ laut GitHub-Dokumentation, Adding a file to a repository):
- 25 MiB pro Datei beim Hochladen über den Browser.
- Maximal 100 Dateien pro Upload.
- Größere Dateien (bis 100 MiB pro Stück) erfordern die Kommandozeile; Dateien über 100 MiB benötigen Git Large File Storage.
- Ein geschützter Branch kann nicht über den Web-Upload bearbeitet werden.
- Push Protection kann Dateien blockieren, die einen unterstützten Secret-Typ enthalten, z. B. einen Token.
Ordner: Die Dokumentation besagt, dass Sie eine Datei oder einen Ordner ziehen können. Wenn der Browser des Benutzers keine Ordner akzeptiert, verwenden Sie stattdessen eine dieser Alternativen:
- Erstellen Sie den Ordner im Web-Editor: Add file, Create new file, geben Sie
ordnername/dateiname.mdin das Namensfeld ein (der Schrägstrich erzeugt den Ordner), fügen Sie Inhalt hinzu, dann committen. Überprüfen Sie das Verhalten in der aktuellen Benutzeroberfläche. - Entpacken Sie den Ordner und laden Sie die Dateien in Batches hoch, die die Ordnerpfade beibehalten, oder verwenden Sie GitHub Desktop.
- Lassen Sie den Assistenten die Dateien pushen, wenn er Repository-Zugriff hat.
Zip-Dateien werden als einzelne Datei gespeichert; GitHub entpackt sie nicht. Laden Sie den entpackten Inhalt hoch.
Schließen Sie mit einer Commit-Nachricht ab (kurz, was geändert wurde) und klicken Sie auf den Button Commit changes.
Überprüfen Sie das Ergebnis: Öffnen Sie die Repository-Seite und vergleichen Sie die Dateiliste mit der Absicht. Häufiger Fehler: Dateien landen im Stammverzeichnis statt in ihrem Ordner.
3. Releases mit Downloads (was Benutzer herunterladen sollen)
Ein Release ist eine beschriftete Download-Seite, die auf einem Git-Tag basiert (✓ laut GitHub-Dokumentation, About releases).
- Klicken Sie auf der Repository-Seite auf Releases (rechts), dann auf Draft a new release.
- Wählen Sie einen Tag wie
v1.0.0(geben Sie einen neuen ein, dann Create new tag). - Titel und Notizen: Was es ist, wie man es in drei Schritten installiert, was sich geändert hat.
- Ziehen Sie die Dateien in das Assets-Feld. Anfängerfreundliche Releases enthalten ein gebautes Installationsprogramm oder eine Datei pro Betriebssystem, eine Kurzanleitung und Installationsanweisungen, nicht nur eine nackte Datei oder den Quellcode.
- Klicken Sie auf Publish release.
Grenzen (✓): Jede Datei unter 2 GiB, bis zu 1000 Assets pro Release, keine Begrenzung der Gesamtgröße oder Bandbreite.
Vorlage für Release-Notizen:
- Was es ist (eine Zeile)
- Download: Wählen Sie Ihr System (Windows, macOS, Linux)
- In drei Schritten installieren
- Prüfsummen (SHA-256) für jede Datei
- Bekannte Probleme
4. Lizenz und README-Grundlagen
- Ein Repository ohne Lizenz ist nicht Open Source; andere haben kein Recht, es wiederzuverwenden. Wählen Sie bewusst eine aus.
- MIT: sehr freizügig, kurz. AGPL-3.0 oder GPL: Copyleft. Projekte, die auf JUCE unter dessen Open-Source-Option basieren, unterliegen der AGPLv3 (✓ laut JUCE-Forum, Mitarbeiter). Überprüfen Sie daher vor der Auswahl die aktuelle JUCE-Lizenz.
- Veröffentlichen Sie niemals Herstellerdateien (Handbücher, Werkseinstellungen, Logos, Binärdateien), an denen Sie keine Rechte besitzen. Verlinken Sie stattdessen darauf.
- Die README muss beantworten: Was ist das, wie installiere ich es, wie verwende ich es, Lizenz, wie melde ich Probleme.
5. Private Informationen heraushalten (am wichtigsten)
Vor dem ersten öffentlichen Push durchsuchen Sie jede Datei und die Commit-Identität nach: echtem Namen, persönlicher E-Mail, Telefonnummer, Adresse, Arbeitgeber, Token, Passwörtern, lokalen Pfaden mit Benutzernamen.
Commit-Identität:
- Verwenden Sie die GitHub-Noreply-Adresse, die Sie unter Settings, Emails mit aktivierter Option „Keep my email addresses private“ sehen. Format:
<numerische ID>+<benutzername>@users.noreply.github.com. - Setzen Sie sie vor dem Committen:
git config user.name "<benutzername>"undgit config user.email "<id>+<benutzername>@users.noreply.github.com". Überprüfen Sie mitgit log --format='%an <%ae>'vor dem Push. - Wenn ein Assistent für den Benutzer commitet, muss er diese Identität verwenden und niemals die echte E-Mail des Benutzers.
Wenn private Daten bereits öffentlich sind (✓ laut GitHub-Dokumentation, Removing sensitive data from a repository):
- Wenn es sich um einen Credential handelt, widerrufen oder rotieren Sie ihn zuerst. Das kann allein ausreichen.
- Schreiben Sie die Historie lokal mit
git-filter-repoum (Version 2.47 oder neuer für--sensitive-data-removal). Entfernen Sie eine Datei mit--invert-paths --pathoder ersetzen Sie Text mit--replace-text. - Force-Push, um das Repository auf GitHub zu überschreiben.
- Kontaktieren Sie den GitHub-Support, um zwischengespeicherte Ansichten und Pull-Request-Referenzen zu entfernen. Geben Sie den Repository-Namen, die Anzahl der betroffenen PRs und die ersten geänderten Commits aus der Ausgabe des Tools an.
- Forks behalten die Daten; bitten Sie die Fork-Besitzer, sie zu entfernen. Mitarbeiter müssen rebasen, nicht mergen.
- Warnung aus der Dokumentation: Die Klone anderer Personen behalten die Daten und ein Rewrite kann offenbaren, was entfernt wurde. Gehen Sie davon aus, dass die Daten gesehen wurden.
Das Ändern eines aktuellen Commits (amend) reicht nur für die Branch-Spitze; der alte Commit kann möglicherweise noch über seinen direkten Link erreicht werden, bis GitHub aufräumt. Schritt 4 gilt daher weiterhin.
5b. Auswahl, was öffentlich wird
- Forschungsnotizen, erfasste Gerätedaten, persönliche Notizen und Chat-Transkripte gehören nicht in ein öffentliches Repository, es sei denn, der Benutzer sagt dies.
- Fragen Sie, bevor Sie etwas veröffentlichen, das nicht für die Öffentlichkeit geschrieben wurde.
6. Alltägliche Aufgaben (einzeln)
- Datei im Web bearbeiten: Datei öffnen, Bleistiftsymbol, Änderung, Commit changes.
- Datei löschen: Datei öffnen, drei Punkte, Delete file, commit.
- Umbenennen oder verschieben: Das Dateinamenfeld bearbeiten, den neuen Pfad eingeben, commit.
- Repository im Profil anpinnen: Profilseite, Customize your pins.
- Projektwebseite aktivieren (GitHub Pages): Settings, Pages, Branch und Ordner auswählen. Überprüfen Sie die aktuelle Benutzeroberfläche.
- Probleme melden oder verfolgen: Issues-Tab. Bieten Sie eine Issue-Vorlage für Fehlerberichte an.
7. Wenn etwas fehlschlägt
- Upload abgelehnt: Dateigröße (25 MiB Web-Limit), Dateianzahl (100) und geschützten Branch prüfen.
- Fehlender Ordner: Dateien wurden flach hochgeladen; Pfad mit Create new file neu erstellen oder erneut hochladen.
- Abgelehnter Push mit einer Secret-Warnung: Secret entfernen, rotieren und erneut versuchen.
- Niemals vorschlagen, Sicherheitsabfragen zu deaktivieren.
Quellen
- GitHub-Dokumentation, Adding a file to a repository: https://docs.github.com/en/repositories/working-with-files/managing-files/adding-a-file-to-a-repository
- GitHub-Dokumentation, About releases: https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases
- GitHub-Dokumentation, Removing sensitive data from a repository: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository