Aller Anfang ist schwer. Gerade dann, wenn wir gemeinsam an etwas arbeiten, will niemand etwas Falsches tun. Aber Open Source dreht sich um Kooperation und lebt von den Beiträgen von vielen Freiwilligen. Deshalb haben wir es uns zur Aufgabe gemacht, neuen Mitgliedern in der Open-Source-Gemeinde ihre ersten Schritte so einfach wie möglich zu machen.
Natürlich helfen die vorhandenen Artikel und Videoanleitungen. Aber was kann besser sein, als es einfach einmal auszuprobieren mit dem Wissen, dass man nichts kaputt machen kann? Dieses Projekt will Anfängern zeigen, wie sie möglichst einfach ihren ersten Beitrag leisten. Bedenke: Je entspannter du bist, desto besser lernst du. Wenn du deinen ersten Beitrag leisten möchtest, folge diesen einfachen Schritten. Wir versprechen dir, es wird Spaß machen.
Wenn Git noch nicht installiert ist, installiere es
Forke das Repository durch das Anklicken der Schaltfläche "Fork". Dadurch erhältst du deine eigenen Version des Projektes in deinem Profil.
Klone das Repository auf deinen Computer. Klicke auf die Schaltfläche "Clone or download" und anschließend auf das "copy to clipboard" Symbol.
Öffne eine Kommandozeile und gib das folgende git Kommando ein:
git clone "Deine kopierte URL"
Statt 'Deine kopierte URL' (ohne Anführungszeichen) füge die Repository URL aus dem vorherigen Schritt ein.
Beispiel:
git clone https://github.com/dein-Name/first-contributions.git
An der Stelle 'dein-Name' muss dein Github Username stehen. Hier landet die Kopie deines first-contributions Repository von Github.
Wechsle zum Repository-Verzeichnis auf deinem Computer (falls du es nicht schon getan hast).
cd first-contributions
Erstelle nun einen Branch mit dem Befehl git checkout
command.
git checkout -b <add-dein-Name>
Beispiel:
git checkout -b add-max-mustermann
Öffne Contributors.md
in einem Text-Editor, füge deinen Namen hinzu und speichere die Datei. Gibst du in der Kommandozeile nun git status
ein, siehst du die Änderungen. Füge die Änderungen mit dem Befehl git add
hinzu.
git add Contributors.md
Nun committest du mit git commit
.
git commit -m "Add <dein-Name> to Contributors list"
Ersetze <dein-Name>
mit deinem Namen.
Pushe die Änderungen mit git push
.
git push origin <add-dein-Name>
Ersetze <add-dein-Name>
mit dem Namen des Branches, den du zuvor erstellt hast.
Wenn du jetzt zu deinem Repository auf Github gehst, siehst du einen Knopf Compare & pull request
. Klicke darauf.
Erstelle einen Pull Request.
Roshanjossey wird nun deine Änderungen in den Master Branch dieses Projekts mergen. Du erhältst eine E-Mail sobald dies geschehen ist.
Wenn du der Anleitung bis hierher gefolgt bist und dein Pull Request angenommen wurde, hat dein Branch <add-dein-Name>
seinen Zweck erfüllt und wird nicht länger benötigt. Du kannst ihn in deiner lokalen Arbeitskopie löschen. Dies ist zwar nicht zwingend notwendig, hilft dir aber dabei den Überblick zu bewahren.
Lass uns dazu zuerst den Branch <add-dein-Name>
aus deiner lokalen Arbeitskopie in deinen master Branch mergen. Dazu wechseln wir zuerst in den master:
git checkout master
Merge <add-dein-Name>
zu Master deiner lokalen Arbeitskopie:
git merge <add-dein-Name> master
Lösche nun den Branch <add-dein-Name>
in deiner Arbeitskopie:
git branch -d <add-dein-Name>
Damit hast du nun deinen Branch <add-dein-Name>
in deiner lokalen Arbeitskopie gelöscht. In deinem öffentlichen Repository auf GitHub ist er aber weiterhin vorhanden. Wenn du ihn auch dort löschen möchtest, stelle zuerst sicher, dass du einen Pull Request gestellt hast und er von Roshanjossey angenommen wurde. Du solltest keine Branches löschen solange sie Änderungen enthalten, die nicht gemergt sind!
Um einen Branch auf GitHub zu löschen verwende folgenden Befehl:
git push origin --delete <add-dein-Name>
Nun weißt du, wie man Branches am Ende ihrer Lebenszeit löscht.
So wie du einen Pull Request gestellt hast, werden hoffentlich viele andere Entwickler einen Beitrag zum Projekt leisten. Sobald ein Pull Request angenommen wurde, sind die Änderungen im Master Branch des Projektes. In deinen Fork werden die Änderungen von anderen Freiwilligen aber nicht automatisch übernommen. Damit du immer die neuste Version hast, musst du regelmäßig synchronisieren. Wie dies geschieht wird im folgenden Kapitel erklärt.
Für die weiter Anleitung ist es wichtig den Ablauf einer vollen Synchronisation zu verstehen. In unserem Beispiel gibt es drei verschiedene Repositories: Das öffentliche Repository von Roshanjossey.
github.com/Roshanjossey/first-contributions/
, dein öffentlicher Fork auf GitHub github.com/dein-Name/first-contributions/
und die lokale Arbeitskopie auf deinem PC. Damit deine beiden Versionen synchron bleiben, müssen wir zuerst die Änderungen des öffentlichen Projektes von Roshanjossey holen (fetch
) und mit deiner lokalen Arbeitskopie mergen. Im zweiten Schritt werden wir dann die Änderungen von deiner lokalen Arbeitskopie zu deinem öffentlichen GitHub Projekt pushen. Das ist wichtig, weil du nur für die Versionen auf deinem öffentlichen GitHub Projekt Pull Request stellen kannst.
Hier die Schritte für eine vollständige Synchronisation:
Stelle zuerst sicher, dass du im Master Branch deiner Arbeitskopie bist. Dies kannst du mit folgendem Befehl prüfen:
git status
Wenn du nicht im Master bist, dann wechsle mit folgendem Befehl:
git checkout master
Füge Roshanjossey Repository URL mit upstream remote url
hinzu.
git remote add upstream https://github.com/Roshanjossey/first-contributions
Auf diese Weise sagst du Git, dass es noch eine andere Version dieses Projekts gibt, die wir upstream nennen. Lade nur die neueste Version dieses Repositories.
git fetch upstream
Hier laden wir alle Änderungen von Roshanjosseys Forks herunter (upstream). Danach müssen wir dessen Änderungen in den Master deiner lokalen Arbeitskopie mergen.
git rebase upstream/master
So wendest du alle Änderungen, die du heruntergeladen hast, im Master Branch an. Deine lokale Kopie hat nun den gleichen Stand, wie das öffentliche Repository. Wenn du den Master Branch jetzt pushst, ist auch dein Fork auf GitHub wieder aktuell.
git push origin master
Beachte, dass du hier zum Remote namens origin pushst. Origin ist ein besonderer Name, er steht für das Projekt aus dem du initial mit git checkout geclont hast. Es ist also deine Kopie des Projektes auf GitHub.
GitHub Desktop | Visual Studio 2017 | GitKraken |
Wenn du weitere Fragen hast kannst du Mitglied in unserem Slackteam werden. Join slack team.
Hier sind einige Anfänger-Level Aufgaben (issues) in bekannten Repositories die du lösen kannst. Schau sie dir an und erfahre mehr darüber