Eine vollständige Anleitung zur Verwendung von GitHub

Hast du kürzlich angefangen, Git zu benutzen? Oder vielleicht haben Sie es schon eine Weile benutzt, aber die vielen Rätsel sind immer noch verwirrend.

Git ist in erster Linie ein Versionskontrollsystem und ein Grundnahrungsmittel in jedem Softwareentwicklungsprojekt. Es dient normalerweise zwei Hauptzwecken: Codesicherung und Codeversionierung. Sie können Schritt für Schritt an Ihrem Code arbeiten und dabei den Fortschritt jedes einzelnen Schritts speichern, falls Sie ein Rollback auf eine Sicherungskopie benötigen!

Das häufigste Problem ist, dass die Verwendung von Git schwierig sein kann. Es gibt Zeiten, in denen Versionen und Zweige nicht synchron sind und Sie viel Zeit damit verbringen, Ihren Code zu pushen! Schlimmer noch: Wenn Sie nicht wissen, wie genau bestimmte Befehle funktionieren, kann dies leicht zum versehentlichen Löschen oder Überschreiben von Codebits führen!

Aus diesem Grund habe ich dieses Tutorial vorbereitet, um Ihnen den richtigen Umgang mit Git beizubringen, damit wir alle mit dem Codieren beginnen können.

Installieren und einrichten

Installieren

Als erstes müssen wir git installieren, um es zu benutzen! Mit apt können wir das schnell und einfach erledigen:

sudo apt installiere git-all

Grundeinstellung

Wenn Sie möchten, können Sie Ihren git-Benutzernamen und Ihre E-Mail-Adresse speichern, damit Sie sie für zukünftige git-Befehle nicht erneut eingeben müssen.

git config --global user.name "Benutzername"
git config --global user.email "email"

Farben

Ein netter Trick, den manche Leute oft übersehen, ist, dass Sie zusätzliche Farben aktivieren können, damit Sie die Ausgabe der Befehle leichter lesen können!

git config --global color.ui true

Grundlegende Versionskontrolle

Git wird initialisiert

Jetzt können wir mit der Versionierung unseres Projekts beginnen. Navigieren Sie mit dem Standardbefehl „cd“ zu dem Verzeichnis, für das Sie die Versionskontrolle im Terminal einrichten möchten. Jetzt können Sie ein Git-Repository wie folgt initialisieren:

Git Init

Dadurch wird ein neues Unterverzeichnis mit dem Namen .git erstellt, das alle erforderlichen Repository-Dateien enthält - ein Git-Repository-Gerüst. Zu diesem Zeitpunkt ist noch nichts in Ihrem Projekt erfasst.

Hinzufügen und festschreiben

Um mit der Versionskontrolle bestehender Dateien zu beginnen, sollten Sie zunächst diese Dateien nachverfolgen und ein erstes Commit durchführen. Um dies zu erreichen, fügen Sie zunächst die Dateien zu git hinzu, die Sie an Ihr git-Projekt anhängen möchten.

git add 
git commit -m 'first commit'

Remote-Sicherung

Toll! Sie haben jetzt damit begonnen, Ihr GitHub-Projekt lokal zu versionieren. Wenn Sie Ihr Projekt remote speichern und sichern möchten, müssen Sie ein Remote-Repository auf GitHub erstellen (kostenlos!). Gehen Sie also zuerst zu github.com und erstellen Sie ein Repository. Verwenden Sie dann den Link des Repositorys, um es als Ursprung Ihres lokalen Git-Projekts hinzuzufügen, d. H. Wo dieser Code gespeichert wird.

### Allgemeines Beispiel
Git Remote-Herkunft hinzufügen \
https://github.com/user/repo.git
### Ein Beispiel mit einem Repository von mir
Git Remote-Herkunft hinzufügen \
https://github.com/GeorgeSeif/Semantic-Segmentation-Suite.git

Dann können Sie fortfahren und Ihren Code an GitHub senden ... Viola! Sie haben Ihren Code gesichert!

Git Push Origin Master

Arbeiten mit Ihren Dateien

Statusüberprüfung

Das Hauptwerkzeug, mit dem Sie bestimmen, welche Dateien sich in welchem ​​Status befinden, ist der Befehl git status. Hier können Sie sehen, welche Ihrer Dateien bereits festgeschrieben wurden und welche nicht. Wenn Sie diesen Befehl ausführen, wenn alle Dateien bereits festgeschrieben und übertragen wurden, sollte Folgendes angezeigt werden:

$ git Status
# Am Zweigmaster
nichts festzuschreiben (Arbeitsverzeichnis sauber)

Wenn Sie Ihrem Projekt eine neue Datei hinzufügen und die Datei zuvor noch nicht vorhanden war, sollte beim Ausführen des Status "$ git" die nicht verfolgte Datei folgendermaßen angezeigt werden:

$ git Status
# Am Zweigmaster
# Nicht überwachte Dateien:
# (Verwenden Sie "git add  ...", um anzugeben, was festgeschrieben werden soll)
#
#   LIESMICH
nichts hinzugefügt, um zu bestätigen, aber nicht verfolgte Dateien vorhanden (benutze "git add", um zu verfolgen)

Dies macht $ git status wirklich nützlich, um schnell zu überprüfen, was Sie bereits gesichert haben und was Sie nur lokal haben.

Erweitertes Hinzufügen von Dateien

Es gibt einige fortgeschrittenere Möglichkeiten, Dateien zu Git hinzuzufügen, um Ihren Workflow effizienter zu gestalten. Anstatt nach allen Dateien mit Änderungen zu suchen und sie einzeln hinzuzufügen, können Sie Folgendes tun:

### Dateien einzeln hinzufügen
git add Dateiname

### Hinzufügen aller Dateien im aktuellen Verzeichnis
git add -A

### Das Hinzufügen aller Dateien ändert sich im aktuellen Verzeichnis
Git hinzufügen.

### Auswählen, welche Änderungen hinzugefügt werden sollen (dies hat alle ### Änderungen überstanden und Sie können die Änderungen mit "J" oder "N" bestätigen)
git add -p

Erweiterte Commits

Bisher haben wir gesehen, dass wir eine Datei mit $ git commit -m "commit message" an Git übergeben können. Das ist alles in Ordnung für kurze Commit-Nachrichten, aber wenn Sie etwas ausführlicheres tun möchten, benötigen Sie ein bisschen mehr:

### Bereitgestellte Datei (en) festschreiben
### Dies wird normalerweise für kürzere Festschreibungsnachrichten verwendet
git commit -m 'Commit-Nachricht'

### Datei hinzufügen und in einem Durchgang festschreiben
Git Commit Dateiname -m 'Commit Nachricht'

### Datei hinzufügen und bereitgestellte Datei festschreiben
git commit -am 'Commit-Nachricht einfügen'

### Ihre letzte Festschreibungsnachricht ändern
git commit - Ändere die 'new commit message'

# Kombinieren Sie eine Folge von Festschreibungen zu einer einzigen
### Hiermit können Sie einen chaotischen Festschreibungsverlauf organisieren
Git Rebase -i
### Dies gibt Ihnen eine Schnittstelle zu Ihrem Kerneditor:
# Befehle:
# p, pick = use commit
# r, reword = use commit, bearbeite aber die Commit-Nachricht
# e, edit = use commit, aber hör auf, es zu ändern
# s, squash = use commit, wird jedoch mit dem vorherigen Commit verschmolzen
# f, fixup = wie "squash", aber verwerfen Sie die Protokollnachricht dieses Commits
# x, exec = run command (der Rest der Zeile) using shell

Verzweigen und Zusammenführen

Der Hauptzweig Ihres GitHub-Repository sollte immer funktionierenden und stabilen Code enthalten. Möglicherweise möchten Sie jedoch auch Code sichern, an dem Sie gerade arbeiten, der jedoch nicht vollständig stabil ist. Vielleicht fügen Sie eine neue Funktion hinzu, experimentieren und brechen den Code häufig, aber Sie möchten trotzdem eine Sicherungskopie erstellen, um Ihren Fortschritt zu sichern!

Durch Verzweigen können Sie an einer separaten Kopie Ihres Codes arbeiten, ohne den Hauptzweig zu beeinträchtigen. Wenn Sie zum ersten Mal einen Zweig erstellen, wird ein vollständiger Klon Ihres Hauptzweigs unter einem neuen Namen erstellt. Sie können dann den Code in diesem neuen Zweig unabhängig ändern, einschließlich des Festschreibens von Dateien und dergleichen. Sobald Sie die neue Funktion vollständig integriert haben und der Code stabil ist, fügen Sie ihn in den Master-Zweig ein!

Verzweigung

Hier sind alle Dinge aufgeführt, die Sie zum Erstellen und Bearbeiten eines Zweigs benötigen:

### Erstellen Sie einen lokalen Zweig, an dem Sie arbeiten möchten
git checkout -b Filialname

### Umschalten zwischen 2 Zweigen
Git Checkout Branch_1
Git Checkout Branch_2
### Pushing Ihres neuen lokalen Zweigs zur Remote-Sicherung
git push -u origin branch_2

### Löschen eines lokalen Zweigs - Hiermit können Sie keinen noch nicht zusammengeführten Zweig ### löschen
Git Branch -d Branch_2

### Löschen einer lokalen Filiale - Hiermit wird eine Filiale gelöscht, auch wenn ### noch nicht zusammengeführt wurde!
Git Branch -D Branch_2

### Anzeigen aller aktuellen Zweige für das Repository, einschließlich ### lokaler und entfernter Zweige. Schön zu sehen, ob Sie bereits eine ###-Verzweigung für einen bestimmten Feature-Zusatz haben, insbesondere bei größeren ###-Projekten
Git Branch -a

### Anzeigen aller Zweige, die in Ihrem aktuellen ### Zweig zusammengeführt wurden, einschließlich lokaler und entfernter Zweige. Großartig, um zu sehen, woher alle ### dein Code gekommen sind!
Git Branch -a --merged

### Anzeigen aller Zweige, die nicht mit Ihrem aktuellen ### Zweig zusammengeführt wurden, einschließlich lokaler und entfernter Zweige
Git-Zweig -a --no-merged

### Alle lokalen Filialen anzeigen
Git-Zweig

### Anzeigen aller Remote-Zweige
Git Branch -r

# Master-Zweig in lokalen Zweig neu starten
$ git rebase origin / master

# Pushing des lokalen Zweigs nach dem Umbasieren des Masters in den lokalen Zweig
$ git push origin + branchname

Zusammenführen

Toll! Jetzt haben Sie gelernt, wie Sie eine Verzweigung erstellen und mit diesem Code arbeiten! Sobald Sie das neue Feature zu Ihrer Verzweigung hinzugefügt haben, möchten Sie es wieder in der Hauptverzweigung zusammenführen, sodass Ihre Hauptverzweigung über die neuesten Codefunktionen verfügt.

So geht's:

### Stellen Sie zuerst sicher, dass Sie sich die Hauptniederlassung ansehen
Git Checkout Master

### Jetzt füge deine Filiale zum Master zusammen
git merge branch_2

Das ist es! Möglicherweise müssen Sie Codekonflikte zwischen Ihrem Zweig und dem Master beheben, aber Git zeigt Ihnen, wie Sie all dies tun, nachdem Sie diesen Befehl zum Zusammenführen eingegeben haben.

Beheben von Fehlern und Zurückverfolgen

Fehler passieren ... und sie kommen häufig mit Codierung vor! Wichtig ist, dass wir sie beheben können.

Hab keine Angst hier! Git hat alles, was Sie brauchen, wenn Sie einen Fehler mit dem Code machen, den Sie drücken, etwas überschreiben oder einfach nur eine Korrektur an etwas vornehmen möchten, das Sie gedrückt haben.

### Wechseln Sie zur Version des Codes des letzten Commits
Git Reset HEAD
git reset HEAD - Dateiname # für eine bestimmte Datei
### Wechseln Sie vor dem letzten Festschreiben zur Version des Codes
git reset HEAD ^ - Dateiname
git setze HEAD ^ - Dateiname # für eine bestimmte Datei zurück
### 3 oder 5 Commits zurückschalten
git reset HEAD ~ 3 - Dateiname
git reset HEAD ~ 3 - Dateiname # für eine bestimmte Datei
git reset HEAD ~ 5 - Dateiname
git reset HEAD ~ 5 - Dateiname # für eine bestimmte Datei
### Wechseln Sie zurück zu einem bestimmten Commit
### Wobei '0766c053' die Festschreibungs-ID ist
Git Reset 0766c053 - Dateiname
git reset 0766c053 - Dateiname # für eine bestimmte Datei
### Die vorherigen Befehle waren sogenannte "Soft" -Resets. Ihr ### Code wird zurückgesetzt, aber git hält für den Fall, dass Sie ihn benötigen, eine Kopie des anderen Codes ### bereit. Andererseits weist das Flag --hard ### Git an, alle Änderungen im Arbeitsverzeichnis zu überschreiben.
git reset --hard 0766c053

Nützliche Tipps und Tricks für Git

Wir sind alle fertig mit dem Nitty Gritty Zeug! Hier sind einige weitere Git-Tipps und Tricks, die Sie möglicherweise zur Verbesserung Ihres Workflows nützlich finden!

Suchen

### Sucht nach Teilen von Strings in einem Verzeichnis
git grep "etwas"

### Sucht nach Teilen von Strings in einem Verzeichnis und das -n gibt ### die Zeilennummern aus, in denen Git Übereinstimmungen gefunden hat
git grep -n 'irgendwas'

### Sucht nach Teilen eines Strings mit einem bestimmten Kontext (einige Zeilen)
### vor und einige nach dem 'Etwas', das wir suchen)
git grep -C  'irgendwas'

### Sucht nach Teilen eines Strings und zeigt davor auch Zeilen an
git grep -B  'something'

### Sucht nach Teilen eines Strings und zeigt danach auch Zeilen an
git grep -A  'something'

Sehen, wer was geschrieben hat

### Änderungsverlauf einer Datei mit dem Namen des Autors anzeigen
Git Schuld 'Dateiname'

### Änderungsverlauf einer Datei mit dem Namen des Autors ### und der Git-Commit-ID anzeigen
git Schuld 'Dateiname' -l

Protokollierung

### Zeigt eine Liste aller Commits in einem Repository an. Dieser Befehl zeigt ### alles zu einem Commit an, z. B. Commit-ID, Autor, Datum und ### Commit-Nachricht.
Git-Log

### Liste der Commits, die nur Commit-Nachrichten und Änderungen anzeigen
git log -p

### Liste der Commits mit der bestimmten Zeichenfolge, nach der Sie suchen
git log-S "etwas"

### Liste der Commits nach Autor
git log --author 'Author Name'

### Zeigt eine Zusammenfassung der Liste der Commits in einem Repository an. Diese ### zeigt eine kürzere Version der Festschreibungs-ID und der Festschreibungsnachricht.
git log --oneline

### Liste der Commits in einem Repository seit gestern anzeigen
git log --since = gestern

### Zeigt das Protokoll des Autors und die Suche nach einem bestimmten Begriff in der ### Commit-Nachricht an
git log --grep "term" --author "name"

Literatur-Empfehlungen

Versuchen Sie, in einen Programmierjob einzusteigen, oder möchten Sie Ihren aktuellen Job aktualisieren? Cracking the Coding Interview bietet die besten Beispiele für häufig gestellte Fragen zu Coding-Interviews und deren Lösungen für Unternehmen wie Google, Microsoft und Amazon!

Und nur ein Köpfchen, ich unterstütze diesen Blog mit Amazon-Partnerlinks zu tollen Büchern, denn das Teilen toller Bücher hilft allen! Als Amazon Associate verdiene ich mit qualifizierten Einkäufen.