Kapitel ▾ 2. Auflage

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.

The “Your repositories” area
Abbildung 109. Der Bereich "Ihre Repositories"
The “New repository” dropdown
Abbildung 110. Das Dropdown-Menü "Neues Repository"

Dies führt Sie zum Formular "Neues Repository"

The “new repository” form
Abbildung 111. Das 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.

The repository settings link
Abbildung 112. Der Link zu den Repository-Einstellungen

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.

The repository collaborators box
Abbildung 113. Das Feld für Repository-Kollaborateure

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.

Email notification of a new Pull Request
Abbildung 114. 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.

Responses to emails are included in the thread
Abbildung 115. Antworten auf E-Mails werden in den Thread aufgenommen

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.

Merge button and instructions for merging a Pull Request manually
Abbildung 116. Schaltfläche "Zusammenführen" und Anweisungen zum manuellen Zusammenführen einer Pull-Anfrage

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.

Manually change the Pull Request target fork and branch
Abbildung 117. Ändern Sie manuell den Ziel-Fork und den Branch der Pull-Anfrage

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.

Start typing @ to mention someone
Abbildung 118. Beginnen Sie mit der Eingabe von @, um jemanden zu erwähnen

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.

Unsubscribe from an Issue or Pull Request
Abbildung 119. Ein Issue oder eine Pull-Anfrage abbestellen

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.

Notification center options
Abbildung 120. Optionen der Benachrichtigungszentrale

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.

Notification center
Abbildung 121. Benachrichtigungszentrale

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.

Opening a Pull Request when a CONTRIBUTING file exists
Abbildung 122. Das Öffnen einer Pull-Anfrage, wenn eine CONTRIBUTING-Datei vorhanden ist

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.

Change the default branch for a project
Abbildung 123. Ändern des Standard-Branches für ein Projekt

Ä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.

Transfer a project to another GitHub user or Organization
Abbildung 124. Übertragen eines Projekts an einen anderen GitHub-Benutzer oder eine Organisation

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.