-
1. Erste Schritte
- 1.1 Über Versionskontrolle
- 1.2 Eine kurze Geschichte von Git
- 1.3 Was ist Git?
- 1.4 Die Kommandozeile
- 1.5 Git installieren
- 1.6 Erstmalige Git-Einrichtung
- 1.7 Hilfe bekommen
- 1.8 Zusammenfassung
-
2. Git Grundlagen
-
3. Git Branching
- 3.1 Branches im Überblick
- 3.2 Grundlegendes Branching und Merging
- 3.3 Branch-Management
- 3.4 Branching-Workflows
- 3.5 Remote-Branches
- 3.6 Rebasing
- 3.7 Zusammenfassung
-
4. Git auf dem Server
- 4.1 Die Protokolle
- 4.2 Git auf einem Server einrichten
- 4.3 Generieren Ihres SSH-Public-Keys
- 4.4 Einrichten des Servers
- 4.5 Git Daemon
- 4.6 Smart HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Drittanbieter-Hosting-Optionen
- 4.10 Zusammenfassung
-
5. Verteiltes Git
-
6. GitHub
-
7. Git-Werkzeuge
- 7.1 Revisionsauswahl
- 7.2 Interaktives Staging
- 7.3 Stashing und Bereinigen
- 7.4 Ihre Arbeit signieren
- 7.5 Suchen
- 7.6 Historie umschreiben
- 7.7 Reset entmystifiziert
- 7.8 Fortgeschrittenes Merging
- 7.9 Rerere
- 7.10 Debugging mit Git
- 7.11 Submodule
- 7.12 Bundling
- 7.13 Ersetzen
- 7.14 Credential-Speicher
- 7.15 Zusammenfassung
-
8. Git anpassen
-
9. Git und andere Systeme
- 9.1 Git als Client
- 9.2 Migration zu Git
- 9.3 Zusammenfassung
-
10. Git-Interna
- 10.1 Plumbing und Porcelain
- 10.2 Git-Objekte
- 10.3 Git-Referenzen
- 10.4 Packfiles
- 10.5 Die Refspec
- 10.6 Übertragungsprotokolle
- 10.7 Wartung und Datenwiederherstellung
- 10.8 Umgebungsvariablen
- 10.9 Zusammenfassung
-
Anhang A: Git in anderen Umgebungen
- A1.1 Grafische Oberflächen
- A1.2 Git in Visual Studio
- A1.3 Git in Visual Studio Code
- A1.4 Git in IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine
- A1.5 Git in Sublime Text
- A1.6 Git in Bash
- A1.7 Git in Zsh
- A1.8 Git in PowerShell
- A1.9 Zusammenfassung
-
Anhang B: Git in Ihre Anwendungen einbetten
- A2.1 Kommandozeilen-Git
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
- A2.5 Dulwich
-
Anhang C: Git-Befehle
- A3.1 Einrichtung und Konfiguration
- A3.2 Projekte abrufen und erstellen
- A3.3 Grundlegendes Snapshotting
- A3.4 Branching und Merging
- A3.5 Projekte teilen und aktualisieren
- A3.6 Inspektion und Vergleich
- A3.7 Debugging
- A3.8 Patching
- A3.9 E-Mail
- A3.10 Externe Systeme
- A3.11 Administration
- A3.12 Plumbing-Befehle
6.3 GitHub - Ein Projekt verwalten
Ein Projekt verwalten
Nachdem wir uns nun mit dem Beitragen zu einem Projekt vertraut gemacht haben, betrachten wir die andere Seite: das Erstellen, Verwalten und Administrieren Ihres eigenen Projekts.
Ein neues Repository erstellen
Lassen Sie uns ein neues Repository erstellen, um unseren Projektcode zu teilen. Klicken Sie dazu auf die Schaltfläche "Neues Repository" auf der rechten Seite des Dashboards oder über die Schaltfläche + in der oberen Werkzeugleiste neben Ihrem Benutzernamen, wie in Das Dropdown-Menü "Neues Repository" zu sehen ist.
Dies führt Sie zum Formular "Neues Repository"
Alles, was Sie hier wirklich tun müssen, ist einen Projektnamen anzugeben; die restlichen Felder sind völlig optional. Klicken Sie für jetzt einfach auf die Schaltfläche "Repository erstellen" und voilà – Sie haben ein neues Repository auf GitHub mit dem Namen <user>/<project_name>.
Da Sie noch keinen Code dort haben, zeigt Ihnen GitHub Anweisungen an, wie Sie ein brandneues Git-Repository erstellen oder ein bestehendes Git-Projekt verbinden. Wir werden hier nicht weiter darauf eingehen; wenn Sie eine Auffrischung benötigen, werfen Sie einen Blick auf Git-Grundlagen.
Nun, da Ihr Projekt auf GitHub gehostet wird, können Sie die URL an jeden weitergeben, mit dem Sie Ihr Projekt teilen möchten. Jedes Projekt auf GitHub ist über HTTPS unter https://github.com/<user>/<project_name> und über SSH unter git@github.com:<user>/<project_name> zugänglich. Git kann von beiden dieser URLs abrufen und an sie pushen, aber sie sind basierend auf den Anmeldedaten des Benutzers, der sich damit verbindet, zugriffskontrolliert.
|
Hinweis
|
Es ist oft vorzuziehen, die HTTPS-basierte URL für ein öffentliches Projekt zu teilen, da der Benutzer kein GitHub-Konto haben muss, um darauf zum Klonen zuzugreifen. Benutzer benötigen ein Konto und einen hochgeladenen SSH-Schlüssel, um auf Ihr Projekt zuzugreifen, wenn Sie ihnen die SSH-URL geben. Die HTTPS-URL ist auch genau dieselbe URL, die sie in einen Browser einfügen würden, um das Projekt dort anzuzeigen. |
Kollaborateure hinzufügen
Wenn Sie mit anderen Personen zusammenarbeiten möchten, denen Sie Commit-Zugriff gewähren möchten, müssen Sie sie als "Kollaborateure" hinzufügen. Wenn Ben, Jeff und Louise alle Konten auf GitHub erstellen und Sie ihnen Push-Zugriff auf Ihr Repository gewähren möchten, können Sie sie zu Ihrem Projekt hinzufügen. Dies gibt ihnen "Push"-Zugriff, was bedeutet, dass sie sowohl Lese- als auch Schreibzugriff auf das Projekt und das Git-Repository haben.
Klicken Sie auf den Link "Einstellungen" am unteren Rand der rechten Seitenleiste.
Wählen Sie dann im Menü auf der linken Seite "Kollaborateure" aus. Geben Sie dann einfach einen Benutzernamen in das Feld ein und klicken Sie auf "Kollaborateur hinzufügen". Sie können dies beliebig oft wiederholen, um allen Personen, denen Sie Zugriff gewähren möchten, diesen zu gewähren. Wenn Sie den Zugriff widerrufen müssen, klicken Sie einfach auf das "X" auf der rechten Seite ihrer Zeile.
Pull-Anfragen verwalten
Nachdem Sie nun ein Projekt mit etwas Code und vielleicht sogar einigen Kollaborateuren mit Push-Zugriff haben, wollen wir nun besprechen, was zu tun ist, wenn Sie selbst eine Pull-Anfrage erhalten.
Pull-Anfragen können entweder von einem Branch in einem Fork Ihres Repositorys stammen oder von einem anderen Branch im selben Repository. Der einzige Unterschied besteht darin, dass die Anfragen aus einem Fork oft von Personen stammen, zu deren Branch Sie nicht pushen können und die nicht zu Ihrem pushen können, während bei internen Pull-Anfragen im Allgemeinen beide Parteien auf den Branch zugreifen können.
Für diese Beispiele gehen wir davon aus, dass Sie "tonychacon" sind und ein neues Arduino-Code-Projekt namens "fade" erstellt haben.
E-Mail-Benachrichtigungen
Jemand macht eine Änderung an Ihrem Code und sendet Ihnen eine Pull-Anfrage. Sie sollten eine E-Mail erhalten, die Sie über die neue Pull-Anfrage benachrichtigt, und sie sollte ungefähr so aussehen wie E-Mail-Benachrichtigung über eine neue Pull-Anfrage.
In dieser E-Mail gibt es ein paar Dinge zu beachten. Sie erhalten einen kleinen Diffstat – eine Liste der geänderten Dateien in der Pull-Anfrage und wie stark sie geändert wurden. Sie erhalten einen Link zur Pull-Anfrage auf GitHub. Außerdem erhalten Sie einige URLs, die Sie von der Befehlszeile aus verwenden können.
Wenn Sie die Zeile git pull <url> patch-1 sehen, ist dies eine einfache Möglichkeit, einen Remote-Branch zusammenzuführen, ohne einen Remote hinzufügen zu müssen. Wir haben dies kurz in Remote-Branches auschecken besprochen. Wenn Sie möchten, können Sie einen Themen-Branch erstellen und zu diesem wechseln und dann diesen Befehl ausführen, um die Änderungen der Pull-Anfrage zusammenzuführen.
Die anderen interessanten URLs sind die .diff und .patch URLs, die, wie Sie sich vielleicht denken können, einheitliche Diff- und Patch-Versionen der Pull-Anfrage bereitstellen. Sie könnten technisch gesehen die Arbeit an der Pull-Anfrage mit etwas wie diesem zusammenführen
$ curl https://github.com/tonychacon/fade/pull/1.patch | git am
Zusammenarbeit an der Pull-Anfrage
Wie wir in Der GitHub Flow besprochen haben, können Sie nun ein Gespräch mit der Person führen, die die Pull-Anfrage geöffnet hat. Sie können spezifische Codezeilen, ganze Commits oder die gesamte Pull-Anfrage selbst kommentieren, wobei überall GitHub Flavored Markdown verwendet wird.
Jedes Mal, wenn jemand anderes die Pull-Anfrage kommentiert, erhalten Sie weiterhin E-Mail-Benachrichtigungen, damit Sie wissen, dass Aktivität stattfindet. Jede dieser Benachrichtigungen enthält einen Link zur Pull-Anfrage, auf der die Aktivität stattfindet, und Sie können auch direkt auf die E-Mail antworten, um den Thread der Pull-Anfrage zu kommentieren.
Sobald der Code an einem Ort ist, der Ihnen gefällt und den Sie zusammenführen möchten, können Sie ihn entweder herunterladen und lokal zusammenführen, entweder mit der git pull <url> <branch> Syntax, die wir zuvor gesehen haben, oder indem Sie den Fork als Remote hinzufügen und abrufen und zusammenführen.
Wenn die Zusammenführung trivial ist, können Sie auch einfach auf die Schaltfläche "Zusammenführen" auf der GitHub-Website klicken. Dies führt eine "non-fast-forward"-Zusammenführung durch, wodurch ein Zusammenführungs-Commit erstellt wird, auch wenn eine "fast-forward"-Zusammenführung möglich war. Das bedeutet, dass jedes Mal, wenn Sie auf die Schaltfläche "Zusammenführen" klicken, ein Zusammenführungs-Commit erstellt wird. Wie Sie in Schaltfläche "Zusammenführen" und Anweisungen zum manuellen Zusammenführen einer Pull-Anfrage sehen können, gibt Ihnen GitHub all diese Informationen, wenn Sie auf den Hinweislunk klicken.
Wenn Sie entscheiden, dass Sie sie nicht zusammenführen möchten, können Sie die Pull-Anfrage auch einfach schließen, und die Person, die sie geöffnet hat, wird benachrichtigt.
Pull-Anfragen-Referenzen
Wenn Sie mit **vielen** Pull-Anfragen zu tun haben und nicht jedes Mal eine Reihe von Remotes hinzufügen oder einmalige Pushes durchführen möchten, gibt es einen cleveren Trick, den GitHub Ihnen erlaubt. Dies ist ein etwas fortgeschrittener Trick, und wir werden uns die Details davon in Die Refspec genauer ansehen, aber er kann sehr nützlich sein.
GitHub wirbt die Pull-Anfragen-Branches eines Repositorys als eine Art Pseudo-Branches auf dem Server an. Standardmäßig erhalten Sie diese beim Klonen nicht, aber sie sind auf eine verschleierte Weise vorhanden und Sie können sie ziemlich einfach abrufen.
Um dies zu demonstrieren, werden wir einen Low-Level-Befehl verwenden (oft als "Plumbing"-Befehl bezeichnet, über den wir in Plumbing und Porcelain mehr lesen werden), namens ls-remote. Dieser Befehl wird im täglichen Git-Betrieb im Allgemeinen nicht verwendet, ist aber nützlich, um uns zu zeigen, welche Referenzen auf dem Server vorhanden sind.
Wenn wir diesen Befehl gegen das "blink"-Repository ausführen, das wir zuvor verwendet haben, erhalten wir eine Liste aller Branches und Tags und anderer Referenzen im Repository.
$ git ls-remote https://github.com/schacon/blink
10d539600d86723087810ec636870a504f4fee4d HEAD
10d539600d86723087810ec636870a504f4fee4d refs/heads/master
6a83107c62950be9453aac297bb0193fd743cd6e refs/pull/1/head
afe83c2d1a70674c9505cc1d8b7d380d5e076ed3 refs/pull/1/merge
3c8d735ee16296c242be7a9742ebfbc2665adec1 refs/pull/2/head
15c9f4f80973a2758462ab2066b6ad9fe8dcf03d refs/pull/2/merge
a5a7751a33b7e86c5e9bb07b26001bb17d775d1a refs/pull/4/head
31a45fc257e8433c8d8804e3e848cf61c9d3166c refs/pull/4/merge
Natürlich, wenn Sie sich in Ihrem Repository befinden und git ls-remote origin oder einen anderen Remote ausführen, den Sie überprüfen möchten, wird etwas Ähnliches wie dies angezeigt.
Wenn sich das Repository auf GitHub befindet und Sie Pull-Anfragen haben, die geöffnet wurden, erhalten Sie diese Referenzen, die mit refs/pull/ beginnen. Dies sind im Grunde Branches, aber da sie nicht unter refs/heads/ stehen, erhalten Sie sie normalerweise nicht beim Klonen oder Abrufen vom Server – der Abrufprozess ignoriert sie normalerweise.
Es gibt zwei Referenzen pro Pull-Anfrage – diejenige, die auf /head endet, zeigt auf denselben Commit wie der letzte Commit im Pull-Anfragen-Branch. Wenn also jemand eine Pull-Anfrage in unserem Repository öffnet und sein Branch bug-fix heißt und auf den Commit a5a775 zeigt, dann haben wir in **unserem** Repository keinen bug-fix-Branch (da dieser in seinem Fork ist), aber wir **haben** pull/<pr#>/head, das auf a5a775 zeigt. Das bedeutet, dass wir ziemlich einfach jeden Pull-Anfragen-Branch auf einmal abrufen können, ohne eine Reihe von Remotes hinzufügen zu müssen.
Nun könnten Sie so etwas wie das direkte Abrufen der Referenz tun.
$ git fetch origin refs/pull/958/head
From https://github.com/libgit2/libgit2
* branch refs/pull/958/head -> FETCH_HEAD
Dies sagt Git: "Verbinde dich mit dem origin Remote und lade die Referenz namens refs/pull/958/head herunter." Git gehorcht gerne und lädt alles herunter, was Sie benötigen, um diese Referenz zu konstruieren, und platziert einen Zeiger auf den gewünschten Commit unter .git/FETCH_HEAD. Sie können dies mit git merge FETCH_HEAD in einen Branch, den Sie testen möchten, fortsetzen, aber die Commit-Nachricht für die Zusammenführung sieht etwas seltsam aus. Außerdem wird dies mühsam, wenn Sie **viele** Pull-Anfragen überprüfen.
Es gibt auch eine Möglichkeit, *alle* Pull-Anfragen abzurufen und sie auf dem neuesten Stand zu halten, wenn Sie sich mit dem Remote verbinden. Öffnen Sie .git/config in Ihrem bevorzugten Editor und suchen Sie nach dem origin Remote. Es sollte ungefähr so aussehen
[remote "origin"]
url = https://github.com/libgit2/libgit2
fetch = +refs/heads/*:refs/remotes/origin/*
Diese Zeile, die mit fetch = beginnt, ist ein "Refspec". Es ist eine Möglichkeit, Namen auf dem Remote mit Namen in Ihrem lokalen .git-Verzeichnis zuzuordnen. Dieser spezielle Refspec sagt Git: "Die Dinge auf dem Remote, die sich unter refs/heads befinden, sollten in meinem lokalen Repository unter refs/remotes/origin abgelegt werden." Sie können diesen Abschnitt ändern, um einen weiteren Refspec hinzuzufügen
[remote "origin"]
url = https://github.com/libgit2/libgit2.git
fetch = +refs/heads/*:refs/remotes/origin/*
fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
Diese letzte Zeile sagt Git: "Alle Referenzen, die wie refs/pull/123/head aussehen, sollten lokal als refs/remotes/origin/pr/123 gespeichert werden." Jetzt, wenn Sie diese Datei speichern und ein git fetch ausführen
$ git fetch
# …
* [new ref] refs/pull/1/head -> origin/pr/1
* [new ref] refs/pull/2/head -> origin/pr/2
* [new ref] refs/pull/4/head -> origin/pr/4
# …
Jetzt sind alle Remote-Pull-Anfragen lokal mit Referenzen dargestellt, die sich wie Tracking-Branches verhalten; sie sind schreibgeschützt und werden aktualisiert, wenn Sie einen Fetch durchführen. Das macht es super einfach, den Code einer Pull-Anfrage lokal auszuprobieren
$ git checkout pr/2
Checking out files: 100% (3769/3769), done.
Branch pr/2 set up to track remote branch pr/2 from origin.
Switched to a new branch 'pr/2'
Die scharfen Augen unter Ihnen würden das head am Ende des Remote-Teils des Refspecs bemerken. Auf der GitHub-Seite gibt es auch eine Referenz refs/pull/#/merge, die den Commit darstellt, der entstehen würde, wenn Sie auf der Website auf die Schaltfläche "Zusammenführen" klicken. Dies ermöglicht es Ihnen, die Zusammenführung zu testen, bevor Sie überhaupt auf die Schaltfläche klicken.
Pull-Anfragen zu Pull-Anfragen
Sie können nicht nur Pull-Anfragen öffnen, die auf den Haupt- oder master-Branch abzielen, sondern Sie können tatsächlich eine Pull-Anfrage öffnen, die auf jeden Branch im Netzwerk abzielt. Tatsächlich können Sie sogar eine andere Pull-Anfrage anvisieren.
Wenn Sie eine Pull-Anfrage sehen, die sich in die richtige Richtung bewegt, und Sie eine Idee für eine Änderung haben, die davon abhängt, oder Sie sich nicht sicher sind, ob es eine gute Idee ist, oder Sie einfach keinen Push-Zugriff auf den Ziel-Branch haben, können Sie eine Pull-Anfrage direkt an diese öffnen.
Wenn Sie eine Pull-Anfrage öffnen, gibt es oben auf der Seite ein Feld, das angibt, auf welchen Branch Sie ziehen möchten und von welchem Sie ziehen möchten. Wenn Sie auf die Schaltfläche "Bearbeiten" rechts neben diesem Feld klicken, können Sie nicht nur die Branches, sondern auch den Fork ändern.
Hier können Sie ziemlich einfach festlegen, Ihren neuen Branch in eine andere Pull-Anfrage oder einen anderen Fork des Projekts zusammenzuführen.
Erwähnungen und Benachrichtigungen
GitHub verfügt auch über ein ziemlich gutes Benachrichtigungssystem, das hilfreich sein kann, wenn Sie Fragen haben oder Feedback von bestimmten Personen oder Teams benötigen.
In jedem Kommentar können Sie mit einem @-Zeichen beginnen, und es wird automatisch mit den Namen und Benutzernamen von Personen vervollständigt, die Kollaborateure oder Mitwirkende des Projekts sind.
Sie können auch einen Benutzer erwähnen, der nicht in diesem Dropdown-Menü enthalten ist, aber oft macht der Autovervollständiger es schneller.
Sobald Sie einen Kommentar mit einer Benutzererwähnung posten, wird dieser Benutzer benachrichtigt. Das bedeutet, dass dies eine sehr effektive Möglichkeit sein kann, Personen in Konversationen einzubinden, anstatt sie dazu zu zwingen, nachzufragen. Sehr oft werden in Pull-Anfragen auf GitHub Personen aus ihren Teams oder ihrem Unternehmen eingebunden, um ein Issue oder eine Pull-Anfrage zu überprüfen.
Wenn jemand in einer Pull-Anfrage oder einem Issue erwähnt wird, wird er "abonniert" und erhält weiterhin Benachrichtigungen über jede Aktivität, die dort stattfindet. Sie werden auch abonniert, wenn Sie sie geöffnet haben, wenn Sie das Repository beobachten oder wenn Sie etwas kommentieren. Wenn Sie keine Benachrichtigungen mehr erhalten möchten, gibt es auf der Seite eine Schaltfläche "Abbestellen", auf die Sie klicken können, um keine weiteren Updates mehr zu erhalten.
Die Benachrichtigungszentrale
Wenn wir hier von "Benachrichtigungen" im Zusammenhang mit GitHub sprechen, meinen wir eine spezielle Art und Weise, wie GitHub versucht, Sie zu kontaktieren, wenn Ereignisse eintreten, und es gibt verschiedene Möglichkeiten, diese zu konfigurieren. Wenn Sie im Einstellungsmenü zum Tab "Benachrichtigungszentrale" gehen, können Sie einige der Ihnen zur Verfügung stehenden Optionen sehen.
Die beiden Optionen sind Benachrichtigungen per "E-Mail" und per "Web" zu erhalten, und Sie können entweder, keines von beiden oder beides wählen, wenn Sie aktiv an Dingen teilnehmen und für Aktivitäten in Repositories, die Sie beobachten.
Web-Benachrichtigungen
Web-Benachrichtigungen existieren nur auf GitHub und Sie können sie nur auf GitHub überprüfen. Wenn Sie diese Option in Ihren Einstellungen ausgewählt haben und eine Benachrichtigung für Sie ausgelöst wird, sehen Sie einen kleinen blauen Punkt über Ihrem Benachrichtigungssymbol oben auf dem Bildschirm, wie in Benachrichtigungszentrale zu sehen ist.
Wenn Sie darauf klicken, sehen Sie eine Liste aller Elemente, über die Sie benachrichtigt wurden, gruppiert nach Projekt. Sie können die Benachrichtigungen eines bestimmten Projekts filtern, indem Sie auf dessen Namen in der linken Seitenleiste klicken. Sie können die Benachrichtigung auch bestätigen, indem Sie auf das Häkchensymbol neben einer Benachrichtigung klicken, oder *alle* Benachrichtigungen in einem Projekt bestätigen, indem Sie auf das Häkchen oben in der Gruppe klicken. Neben jedem Häkchen gibt es auch eine Schaltfläche "Stumm schalten", auf die Sie klicken können, um keine weiteren Benachrichtigungen zu diesem Element zu erhalten.
Alle diese Werkzeuge sind sehr nützlich für die Handhabung einer großen Anzahl von Benachrichtigungen. Viele Power-User von GitHub schalten einfach alle E-Mail-Benachrichtigungen aus und verwalten alle ihre Benachrichtigungen über diesen Bildschirm.
E-Mail-Benachrichtigungen
E-Mail-Benachrichtigungen sind die andere Möglichkeit, Benachrichtigungen über GitHub zu verwalten. Wenn Sie diese aktiviert haben, erhalten Sie für jede Benachrichtigung eine E-Mail. Wir haben Beispiele dafür in Als E-Mail gesendete Benachrichtigungen zu Kommentaren und E-Mail-Benachrichtigung über eine neue Pull-Anfrage gesehen. Die E-Mails werden auch richtig in Threads zusammengefasst, was praktisch ist, wenn Sie einen E-Mail-Client mit Threading-Funktion verwenden.
Es gibt auch eine beträchtliche Menge an Metadaten, die in den Kopfzeilen der E-Mails eingebettet sind, die GitHub Ihnen sendet, was für die Einrichtung benutzerdefinierter Filter und Regeln sehr hilfreich sein kann.
Wenn wir beispielsweise die tatsächlichen E-Mail-Header betrachten, die Tony in der in E-Mail-Benachrichtigung über eine neue Pull-Anfrage gezeigten E-Mail erhalten hat, werden wir unter den gesendeten Informationen Folgendes sehen
To: tonychacon/fade <fade@noreply.github.com>
Message-ID: <tonychacon/fade/pull/1@github.com>
Subject: [fade] Wait longer to see the dimming effect better (#1)
X-GitHub-Recipient: tonychacon
List-ID: tonychacon/fade <fade.tonychacon.github.com>
List-Archive: https://github.com/tonychacon/fade
List-Post: <mailto:reply+i-4XXX@reply.github.com>
List-Unsubscribe: <mailto:unsub+i-XXX@reply.github.com>,...
X-GitHub-Recipient-Address: tchacon@example.com
Hier gibt es ein paar interessante Dinge. Wenn Sie E-Mails für dieses spezielle Projekt oder sogar die Pull-Anfrage hervorheben oder umleiten möchten, liefert die Information in Message-ID alle Daten im Format <user>/<project>/<type>/<id>. Wenn es sich beispielsweise um ein Issue gehandelt hätte, wäre das Feld <type> "issues" und nicht "pull" gewesen.
Die Felder List-Post und List-Unsubscribe bedeuten, dass Sie, wenn Sie einen E-Mail-Client haben, der diese versteht, einfach an die Liste posten oder sich vom Thread "abmelden" können. Das wäre im Wesentlichen dasselbe wie das Klicken auf die Schaltfläche "Stumm schalten" in der Webversion der Benachrichtigung oder "Abbestellen" auf der Issue- oder Pull-Anfrage-Seite selbst.
Es ist auch erwähnenswert, dass, wenn Sie sowohl E-Mail- als auch Web-Benachrichtigungen aktiviert haben und die E-Mail-Version der Benachrichtigung lesen, die Web-Version ebenfalls als gelesen markiert wird, wenn Sie Bilder in Ihrem E-Mail-Client zulassen.
Spezielle Dateien
Es gibt ein paar spezielle Dateien, die GitHub bemerkt, wenn sie in Ihrem Repository vorhanden sind.
README
Die erste ist die README-Datei, die fast jedes Format haben kann, das GitHub als Prosa erkennt. Sie könnte zum Beispiel README, README.md, README.asciidoc usw. sein. Wenn GitHub eine README-Datei in Ihrem Quellcode findet, wird sie auf der Startseite des Projekts gerendert.
Viele Teams verwenden diese Datei, um alle relevanten Projektinformationen für jemanden zu speichern, der möglicherweise neu im Repository oder Projekt ist. Dies beinhaltet im Allgemeinen Dinge wie
-
Wofür das Projekt ist
-
Wie man es konfiguriert und installiert
-
Ein Beispiel dafür, wie man es benutzt oder zum Laufen bringt
-
Die Lizenz, unter der das Projekt angeboten wird
-
Wie man dazu beiträgt
Da GitHub diese Datei rendert, können Sie darin Bilder oder Links einbetten, um das Verständnis zu erleichtern.
CONTRIBUTING
Die andere spezielle Datei, die GitHub erkennt, ist die CONTRIBUTING-Datei. Wenn Sie eine Datei namens CONTRIBUTING mit einer beliebigen Dateierweiterung haben, wird GitHub Das Öffnen einer Pull-Anfrage, wenn eine CONTRIBUTING-Datei vorhanden ist anzeigen, wenn jemand beginnt, eine Pull-Anfrage zu öffnen.
Die Idee dahinter ist, dass Sie spezifische Dinge festlegen können, die Sie in einer Pull-Anfrage für Ihr Projekt wünschen oder nicht wünschen. Auf diese Weise lesen die Leute möglicherweise die Richtlinien, bevor sie die Pull-Anfrage öffnen.
Projektverwaltung
Im Allgemeinen gibt es nicht viele administrative Dinge, die Sie mit einem einzelnen Projekt tun können, aber es gibt ein paar Punkte, die von Interesse sein könnten.
Ändern des Standard-Branches
Wenn Sie einen anderen Branch als "master" als Standard-Branch verwenden, auf den Leute Pull-Anfragen öffnen oder den sie standardmäßig sehen sollen, können Sie dies auf der Einstellungsseite Ihres Repositorys unter dem Tab "Optionen" ändern.
Ändern Sie einfach den Standard-Branch im Dropdown-Menü, und dies wird von da an der Standard für alle wichtigen Operationen sein, einschließlich des Branches, der standardmäßig ausgecheckt wird, wenn jemand das Repository klont.
Übertragen eines Projekts
Wenn Sie ein Projekt an einen anderen Benutzer oder eine Organisation auf GitHub übertragen möchten, gibt es unter dem Tab "Optionen" derselben Einstellungsseite Ihres Repositorys eine Option "Besitz übertragen", die Ihnen dies ermöglicht.
Dies ist hilfreich, wenn Sie ein Projekt aufgeben und jemand es übernehmen möchte, oder wenn Ihr Projekt wächst und Sie es in eine Organisation verschieben möchten.
Dies verschiebt nicht nur das Repository mit all seinen Beobachtern und Sternen an einen anderen Ort, sondern richtet auch eine Weiterleitung von Ihrer URL zum neuen Ort ein. Es leitet auch Klone und Abrufe von Git um, nicht nur Webanfragen.