Die Git-Grundlagen TL;DR

Als ich vor zehn Jahren studierte, hörte ich einen Professor sagen: „Git ist sehr mächtig, aber die meisten Leute benutzen…

Als ich vor zehn Jahren studierte, hörte ich einen Professor sagen: „Git ist sehr mächtig, aber die meisten Leute benutzen nur etwa 12 Befehle“. Es ist unvermeidlich, dass Sie in der Merge-Hölle landen oder rebasen müssen, aber das würde den Rahmen dieses Artikels sprengen. Ich werde versuchen, den einzigen Git-Workflow zu beschreiben, den Sie jemals brauchen werden, bis Ihr Projekt wirklich groß oder wirklich schwierig wird. In den folgenden Befehlen erkläre ich die einzelnen Befehle, damit Sie wissen, was sie bewirken. Hier sind einige Git-Grundlagen.

(Diese Anleitung setzt voraus, dass Sie ein GitHub-Konto und einen damit verbundenen ssh-Schlüssel haben. Wenn Sie noch kein Konto haben, können Sie sich hier ein Konto einrichten und diese Anweisungen befolgen, um einen ssh-Schlüssel zu erzeugen und zu Ihrem Konto hinzuzufügen. Dies ist mein Versuch, eine Anleitung mit den wichtigsten Git-Befehlen für die Mitarbeit an Open Source zu schreiben, ohne Ihnen den ganzen Tag zu stehlen und Sie für immer zu befähigen).

Hier ist ein toller Comic von XKCD über git.

 

Git-Grundlagen

Legen Sie ein oder zwei Verzeichnisse auf Ihrem Computer an, damit Sie leicht wissen, wo Sie stehen. Ich lege gerne eine Verzeichnisstruktur wie diese github.com/marcussorealheis/ an, damit mein lokaler Pfad dem im Web ähnelt.

Also:

mkdir github.com
cd github.com
mkdir marcussorealheis #use your username not mine, unless you really want to!

Um zu beginnen, müssen wir ein Repo von einem entfernten Ort, in diesem Fall von GitHub, holen. Aber bevor wir das tun, werden wir es als unser eigenes forken, damit alles für die Arbeit vorbereitet ist.

Ich mag Lucene-Solr (offensichtlich), also besuchen Sie https://github.com/apache/lucene-solr. Oben rechts auf der Seite befindet sich eine Schaltfläche „Fork“. Klicken Sie auf die Schaltfläche fork.

Jetzt befinden Sie sich auf einem eigenen Repo, wo Sie arbeiten sollten, wenn Sie zur Arbeit eines anderen beitragen wollen.

Rechts auf der Seite sehen Sie eine grüne Schaltfläche mit der Aufschrift „Klonen oder Herunterladen“. Klicken Sie auf diese Schaltfläche und kopieren Sie den Text, der mit „git“ beginnt.

Der Text sollte lauten: git@github.com:marcussorealheis/lucene-solr.git. Von nun an wird der Blog sehr kurz sein, etwas rechthaberisch und hauptsächlich aus Code bestehen. Lassen Sie uns eintauchen:

1) Klonen Sie das Repository

git clone git@github.com:apache/lucene-solr.git # pulls the repo down on master branch so you can have a local copy

2) Errichten Sie die entfernte Zweigstelle

git remote add upstream https://github.com/apache/lucene-solr.git # add the remote repo
git fetch # pull it down

^ Eigentlich zwei Befehle, aber Sie können den einen nicht ohne den anderen ausführen. Also ein Schritt.

3) Machen Sie einen Zweig

Ich setze meinen Zweigen gerne ein Präfix voran, mit dem sie leicht zu kategorisieren sind, z.B. bugfix enhancement feature oder hotfix, wenn ich etwas bearbeite, das eine Version betrifft. Oftmals beginnen Sie mit einem Release-Zweig und nicht mit dem Master-Zweig. Bei einigen Projekten müssen Tickets im Zweignamen enthalten sein, aber ich füge diese normalerweise in der Git-Benutzeroberfläche hinzu.

git checkout -b enhancement/clarify-ago-log # creates a new copy because you should NEVER change master directly

Nehmen Sie Ihre Änderungen vor. (Ich habe ein kleines Problem mit den Abständen in einem weniger häufig verwendeten Konsolenprotokoll auf der Solr-Administrationsseite behoben).

4) Überprüfen Sie die Zusammenfassung der Änderungen in Ihrem Code, damit wir wissen, was wir übertragen müssen.

git status # maybe the single most helpful command for you

5) Stellen Sie Ihre Änderungen zur Übergabe bereit

git add webapp/web/libs/ngtimeago.js # this stages my changes for commit

6) Bestätigen Sie Ihre Änderungen

git commit -m "fix the spacing in ngtimeago" # add a short and clear summary of your changes

7) Schieben Sie Ihre Änderungen nach oben

git push # actually this won't work because you need to establish an upstream branch for your changes

Kopieren Sie, was im Terminal steht, und führen Sie den Befehl aus:

git push --set-upstream origin enhancement/clarify-ago-log

Drücken Sie erneut:

git push

Sie sollten einen gelben Balken und eine Schaltfläche sehen, die Sie auffordert, zu vergleichen und einen Pull Request zu erstellen. Es sieht so aus:

git-Vergleich und Pull-Anfrage

Klicken Sie auf diese Schaltfläche und Sie können Ihre Änderungen in der GitHub-Benutzeroberfläche überprüfen. Sie sieht dann so aus:

GitHub Bewertung

Sie sind fertig. Sie haben ein grundlegendes Verständnis von Git und können sich mit einigen Open-Source-Projekten beschäftigen. Die fünf anderen Befehle, die Sie kennen sollten (da wir --set-upstream verwenden mussten), sind:

1) git init # creates a .git/ dir in your project folder to initialize version control

2) git reset -- HEAD # overwrite all your local changes to reset to the remote repo

3) git remote -v # allows you to check that your remote repo is correctly set as your origin and the original repo is upstream
Wenn Sie das jemals reparieren müssen, sehen Sie hier nach: https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes

4) git merge upstream/master # if your local copy got behind and you want to sync changes from upstream

5) git stash # you made some local changes that you rather set aside, to keep moving. If you might need the code later, keep the stash ID in a handy place.

Es gibt eigentlich viel mehr zu

git

als das, was in diesem Beitrag enthalten ist, aber es ist ein Anfang. Wenn Sie mehr Hilfe benötigen, lassen Sie es mich wissen.

Bonus-Profi-Tipp: Wenn Sie wissen möchten, auf welchem Zweig Sie sich befinden, iTerm2 verwenden und mit Mac OSX arbeiten, fügen Sie dies zu Ihrem ~/.bashrc hinzu:

function iterm2_print_user_vars() {
iterm2_set_user_var gitStatus "$(gitStatus)"
}

Mehr erfahren

Quick Links