Git

22 grundlegende Git-Befehle

22 grundlegende Git-Befehle
Git ist zum Inbegriff des Versionskontrollsystems geworden. Der Anstieg der Popularität von Git ist auf seine Geschwindigkeit, Agilität und Vielseitigkeit zurückzuführen. Egal, ob Sie freiberuflicher Webentwickler oder Softwaredesigner für Anwendungen auf Unternehmensebene sind, Sie können von der Verwendung von Git . profitieren. Es hilft Ihnen, durch systematische Versionierung den Überblick über Ihre Dateien zu behalten. Git erleichtert das Rollback auf ältere Codeversionen oder das Erstellen neuer Branches, um mit der aktuellen Codebasis zu experimentieren. Außerdem ist Git ein verteiltes Versionskontrollsystem, was bedeutet, dass Sie sich nicht immer mit einem zentralen Server verbinden müssen, um Ihre Arbeit zu erledigen.Nachfolgend finden Sie die wichtigsten Git-Befehle, die Ihnen bei Ihren täglichen Aufgaben helfen. Die einfachen Beispiele vermitteln Ihnen ein Verständnis der Befehle, sodass Sie sich die Syntax leicht merken können, wenn Sie sie verwenden müssen.

1. git hinzufügen

Mit dem Befehl git add können Sie Dateien und Ordner für Ihr Git-Repository verfolgen und in den Staging-Bereich verschieben. Sie müssen den Befehl git commit verwenden, um sie dauerhaft in Ihren historischen Snapshots zu speichern.

Die Verwendung des Befehls ist einfach. Sie können Dateien und Ordner einzeln hinzufügen oder den Glob-Operator des Linux-Typs Sternchen (*) verwenden, um sie in Gruppen hinzuzufügen.

Nehmen wir das folgende Beispiel:

Angenommen, im obigen Fall haben wir die ReadMe-Datei bereits hinzugefügt.TXT. Aber der Rest der Dateien wurde nicht hinzugefügt.

Lassen Sie uns den Status überprüfen:

$git-Status
Auf Zweigmeister
Ihre Filiale ist aktuell mit 'Herkunft/Master'.
Nicht verfolgte Dateien:
(benutze 'git add … ' um einzubeziehen, was begangen wird)
Datei1.TXT
Datei2.TXT
Ordner1/

Die Dateien und Ordner sind rot, was bedeutet, dass sie nicht verfolgt werden. Wir können sie hinzufügen mit:

$git Datei hinzufügen1.txt-Datei2.txt-Ordner1/*

Wenn wir jetzt den Status prüfen:

$git-Status
Auf Zweigmeister
Ihre Filiale ist aktuell mit 'Herkunft/Master'.
Zu verpflichtende Änderungen:
(benutze 'git reset HEAD … ' aufheben)
neue Datei:   Datei1.TXT
neue Datei:   Datei2.TXT
neue Datei:   Ordner1/Datei3.TXT
neue Datei:   Ordner1/Datei4.TXT

Der Befehl git add hat die Dateien zum Staging-Bereich hinzugefügt. Dateien werden im Staging-Bereich aufbewahrt, bevor sie durch den Commit-Prozess dauerhaft gemacht werden.

2. Git-Zweig

Auf Git ist das Verzweigen einfach. In anderen Versionskontrollsystemen war es eine teure Operation. Aber Git-Algorithmen sind für Verzweigungen optimiert. Sie können den Befehl git branch jederzeit verwenden, wenn Sie eine separate Entwicklungslinie erstellen möchten, ohne sich um die Leistung kümmern zu müssen.

Schauen wir uns das folgende Beispiel an.

$git-Status
Auf Zweigmeister
Ihre Filiale ist aktuell mit 'Herkunft/Master'.
Zu verpflichtende Änderungen:
(benutze 'git reset HEAD … ' aufheben)
neue Datei:   Datei1.TXT
neue Datei:   Datei2.TXT
neue Datei:   Ordner1/Datei3.TXT
neue Datei:   Ordner1/Datei4.TXT

Beachten Sie, dass wir 'On Branch Master' sind. Wenn Sie ein neues Projekt erstellen, landen Sie im Branch-Master. Sie können auch den Befehl git branch -a verwenden, um herauszufinden, in welchem ​​Branch Sie sich befinden:

$git branch -a
* Meister

Das obige sagt Ihnen, dass es nur einen Zweig namens 'Master' gibt und das Sternchen (*) bedeutet, dass Sie sich in diesem Zweig befinden.

Erstellen wir einen neuen Branch namens 'testing':

$git Branch-Tests

Jetzt können wir die Filialen noch einmal überprüfen:

$git branch -a
* Meister
testen

Obwohl wir uns noch im 'Master'-Zweig befinden, können wir auch den neuen 'Testing'-Zweig sehen, der erstellt wurde. Der Zweig "Testen" ist eine Nachbildung des Zweigs "Master".

3. git Kasse

Der Befehl git checkout führt Sie zu einer Verzweigung, damit Sie dort an den Ressourcen arbeiten können. Sie können sich Zweige als Flüsse und Bäche vorstellen. Mit einem Branch erstellen Sie einen neuen Stream. Mit dem Checkout-Befehl bewegst du dich in diesen Stream.

Schauen wir uns den 'testing'-Zweig aus dem vorherigen Beispiel an:

$git Checkout-Tests
Wechsel zum Zweig 'Testen'

Lassen Sie uns nun den Status und die Zweige noch einmal überprüfen:

$git-Status
Beim Filialtest
nichts zu begehen, Arbeitsverzeichnis sauber
$git branch -a
Meister
* testen

Sie können am git-Zweig sehen - ein Befehl, den wir in den testing-Zweig verschoben haben.

4. Git-Klon

Mit dem Befehl git clone können Sie eine Kopie eines beliebigen Git-Repositorys erstellen. Sobald Sie ein Repository klonen, beginnt der neue geklonte Ordner, die Änderungen lokal zu verfolgen. Da Git verteilt ist, ist ein Klon ein vollständig autonomes Git-Repository.

Um zu zeigen, wie das Klonen funktioniert, erstellen wir ein neues Repository:

$mkdir dir1
$cd dir1
$mkdir meinProjekt
$cd meinProjekt/
$git init
Initialisiertes leeres Git-Repository in /dir1/myproject/.git/
$touch ReadMe.TXT
$git commit -m 'Mein Repository initialisieren'
[master (root-commit) 5a0bd75] Initialisiere mein Repository
1 Datei geändert, 0 Einfügungen (+), 0 Löschungen (-)
Modus erstellen 100644 ReadMe.TXT

Im obigen Beispiel haben wir ein Git-Repository namens 'myproject' im Ordner 'dir1' erstellt. Angenommen, dies ist unser Haupt-Repository. Jetzt wollen wir eine Kopie davon machen und woanders arbeiten.

Lassen Sie uns ein Verzeichnis namens 'dir2' erstellen und das Repository 'myproject' klonen. Wir verwenden den Git-Klon

um 'myproject' zu klonen:

$mkdir dir2
$cd dir2
$git-Klon /dir1/myproject/
Klonen in 'myproject'…
getan.
$ls
Mein Projekt

Der Befehl git clone funktioniert auch mit einer URL.

$git-Klon  https://github.com/test/test.git

Sie können auch den Namen des Klons ändern, indem Sie ihn nach der Git-Repository-Adresse angeben:

$git-Klon  https://github.com/test/test.git mytest

5. git-commit

Der Befehl git commit wird nach dem Befehl git add ausgeführt. In unserem git add-Beispiel hatten wir die Dateien zum Tracking hinzugefügt, aber nicht in das Git-Repository übertragen committed. Das Tracking bleibt lokal, bis ein Commit erfolgt. Wenn Sie die Änderungen festschreiben, werden sie Teil des dauerhaften Datensatzes.

Unten führen wir das git commit -m . aus Befehl:

$git commit -m 'Commit meiner Dateien und Ordner'
[master 3ef57b3] Commit meiner Dateien und Ordner
4 Dateien geändert, 0 Einfügungen (+), 0 Löschungen (-)
Modus erstellen 100644 Datei1.TXT
Modus erstellen 100644 Datei2.TXT
Modus erstellen 100644 Ordner1/Datei3.TXT
Modus erstellen 100644 Ordner1/Datei4.TXT

Wenn Sie die Option -m nicht verwenden, um einen Kommentar abzugeben, öffnet Git Ihren Standard-Texteditor und fragt danach. Kommentare gelten als gute Versionskontrollpraxis. Füge also immer sinnvolle Kommentare in deinen Commit ein.

6. git config

Mit dem Befehl git config können Sie verschiedene Optionen für Ihr Git-Repository einrichten. Sie können beispielsweise die git config -global . verwenden Befehl zum Abrufen und Festlegen Ihres Benutzers.Name und Benutzer.Email.

So können Sie die Werte einstellen:

$ git config --global user.Name 'Zak H'
$ git config --global user.E-Mail an [email protected]

So können Sie die Werte überprüfen:

$git config --global user.Name
Zak H
$git config --global user.Email
[email protected]

7. git diff

Der Befehl git diff hilft Ihnen, die Unterschiede zwischen Dateien und Ordnern zu erkennen. Wenn Sie Änderungen an einer Datei vornehmen, ist dies ein nützliches Werkzeug, um die von Ihnen vorgenommenen Änderungen schnell auszuwerten.

Nehmen wir an, wir beginnen unsere Arbeit mit einer ReadMe.txt-Datei mit zwei Zeilen. Dann entfernen wir die zweite Zeile und fügen eine dritte hinzu.

Wenn wir jetzt den diff-Befehl ausführen, werden die Unterschiede zwischen der festgeschriebenen Version und der lokal geänderten Version im Staging-Bereich angezeigt. So wird es aussehen:

$git diff
diff --git a/ReadMe.txt b/ReadMe.TXT
Index 9475ddc… 1804904 100644
--- a/ReadMe.TXT
+++ b/ReadMe.TXT
@@ -1,2 +1,2 @@
Zeile 1: Meine erste Zeile
-Zeile 2: Meine zweite Zeile
+Zeile 3: Meine DRITTE Zeile

Zeile 1 ist unverändert (weiß), Zeile 2 entfernt (rot) und Zeile 3 hinzugefügt (grün).
Sie können den diff-Befehl verwenden, um auch Unterschiede zwischen bestimmten Commits zu finden.

8. git holen

Der Befehl git fetch ruft die neuesten Ressourcen vom angegebenen Ursprung ab.

Schauen wir uns ein Beispiel an. Angenommen, Sie haben folgende Bedingung:

dir1/meinProjekt
dir2/myproject (geklont)

Der Ordner 'dir2/myproject' wird von 'dir1/myproject' geklont. Wenn nun jemand Änderungen an 'dir1/myproject' vorgenommen hat, können Sie diese Änderungen wie folgt aus 'dir2/myproject' abrufen:

$git Herkunft abrufen
Fernbedienung: Objekte zählen: 2, fertig.
remote: Objekte komprimieren: 100% (2/2), fertig.
Fernbedienung: Gesamt 2 (Delta 0), wiederverwendet 0 (Delta 0)
Objekte auspacken: 100% (2/2), fertig.
Von /dir2/… /dir1/myproject
5a0bd75… 1713734  master     -> Herkunft/Master

Es ist wichtig, sich daran zu erinnern, dass der Befehl git fetch die Änderungen nicht zusammenführt. Verwenden Sie zum automatischen Abrufen und Zusammenführen den Befehl git pull. Dann fragen Sie sich vielleicht, warum Sie diesen Befehl überhaupt verwenden in. Möglicherweise gibt es erweiterte Git-Optionen, bei denen Sie alle Änderungen von Ihrem Ursprungsserver erhalten und Änderungen dann nur selektiv auf bestimmte Dateien anwenden. Mit dem Befehl git fetch können Sie dies erreichen. Es ist jedoch ein fortgeschrittenes Thema, das Sie in der git fetch-Dokumentation finden können.

9. git grep

Mit dem Befehl git grep können Sie Ihren Git-Baum nach Informationen durchsuchen. Hier ist ein Beispiel für die Suche nach dem Wort 'Line' in unserem Git-Repository. Die Option -n oder --line-number zeigt Zeilennummern an, bei denen Git eine Übereinstimmung findet:

$git grep -n Zeile
Liesmich.txt:1:Zeile 1: Meine erste Zeile
Liesmich.txt:2:Zeile 3: Meine DRITTE Zeile

Sie können mit der Option -c oder --count eine ähnliche Suche durchführen, um zu sehen, wie oft die Übereinstimmung vorhanden ist:

git grep -c Zeile
Liesmich.txt:2

Der Grund für die Verwendung von git grep gegenüber Linux grep ist, dass git grep für git-Repositorys schneller ist.

10. git log

Der Befehl git log zeigt dir den Commit-Verlauf an.

$git log
Commit 171373479fc309846ef605fbe650933767afd0fb
Autor: Zak H
Datum:   Mi. 21. Nov. 20:26:32 2018 -0800 
Neue Dateien hinzugefügt
begehen 5a0bd759506d20b2b989873258bf60d003aa3d36
Autor: Zak H
Datum:   Mi. 21. Nov. 18:48:35 2018 -0800 
Mein Repository initialisieren

Sie können auch die Option --oneline verwenden, um eine verkürzte Version anzuzeigen. Die gekürzte Version ist einfacher zu folgen.

$git log --oneline
1713734 Neue Dateien hinzugefügt
5a0bd75 Mein Repository initialisieren

11. git zusammenführen

Der Befehl git merge führt Branches zusammen.

Lassen Sie uns ein neues Repository mit 'main' erstellen und dann einen 'test'-Zweig erstellen.

$mkdir meinProjekt
$cd meinProjekt
$git init
Initialisiertes leeres Git-Repository in /git_essentials/myproject/.git/
$touch ReadMe.TXT
$git add -A
$git commit -m 'Erstes Commit'
[master (root-commit) b31d4e1] Initiales Commit
1 Datei geändert, 0 Einfügungen (+), 0 Löschungen (-)
Modus erstellen 100644 ReadMe.TXT
$git-Zweigtest
$git branch -a
* Meister
Prüfung
$git Checkout-Test
Auf Zweig 'test' gewechselt

Nehmen wir im Zweig 'test' einige Änderungen vor:

$touch Datei1.txt-Datei2.TXT
$Ls
Datei1.txt  Datei2.txt ReadMe.TXT
$git add -A
$git commit -m 'Zwei neue Dateien hinzugefügt'
[test 7e11910] Zwei neue Dateien hinzugefügt
2 Dateien geändert, 0 Einfügungen (+), 0 Löschungen (-)
Erstellungsmodus 100644 Datei1.TXT
Erstellungsmodus 100644 Datei2.TXT

Wir haben dem Test zwei Dateien hinzugefügt.

$git branch -a
Meister
* Prüfung
$ls
Datei1.txt  Datei2.txt ReadMe.TXT
$git Kassenmeister
Auf Zweig 'master' gewechselt
$git branch -a
* Meister
Prüfung
$ls
Liesmich.TXT

Wir sehen aus obigem, dass File1.txt und Datei2.txt existiert im 'test'-Zweig, aber nicht in 'master'.

Lass uns jetzt fusionieren.

$git Merge-Test
Aktualisierung von b31d4e1… 7e11910
Schneller Vorlauf
Datei1.txt | 0
Datei2.txt | 0
2 Dateien geändert, 0 Einfügungen (+), 0 Löschungen (-)
Erstellungsmodus 100644 Datei1.TXT
Erstellungsmodus 100644 Datei2.TXT
$ls
Datei1.txt  Datei2.txt ReadMe.TXT
$git branch -a
* Meister
Prüfung

Jetzt haben wir 'Datei1.txt' und 'Datei2.txt' auch im 'master'-Zweig.

Hinweis: Stellen Sie sich das Zusammenführen als Pull-Vorgang vor. Sie müssen sich in der Branche befinden, in die Sie eingliedern möchten. In diesem Fall befinden Sie sich im 'master'-Zweig und ziehen die Änderungen aus dem 'test'-Zweig.

12. git mv

Der git mv ist ein Kurzbefehl zum Ausführen der Befehle git add und git rm. Es kann verwendet werden, um Dateien umzubenennen.

Hier ist ein Beispiel:

$git mv ReadMe.txt-ReadMe.md
$git-Status
Auf Zweigmeister
Zu verpflichtende Änderungen:
(benutze 'git reset HEAD … ' aufheben)
umbenannt:    ReadMe.txt -> ReadMe.md

13. git ziehen

Der Befehl git pull ist dem git fetch sehr ähnlich, außer dass die Zusammenführung automatisch erfolgt.

Hier ist ein Beispiel für die Ausführung von git pull origin wie git fetch one (wir führen eine Pull-Anfrage vom Klon aus, um Änderungen aus dem ursprünglichen Git-Repository abzurufen):

$git Pull-Ursprung
Fernbedienung: Objekte zählen: 3, fertig.
remote: Objekte komprimieren: 100% (2/2), fertig.
Fernbedienung: Gesamt 3 (Delta 0), wiederverwendet 0 (Delta 0)
Objekte auspacken: 100% (3/3), fertig.
Von /LearnGIT/git_essentials/myproject
7e11910… e67f932  Master     -> Herkunft/Master
Aktualisieren von 7e11910… e67f932
Schneller Vorlauf
Datei1.txt               | 1 +
Datei2.txt               | 1 +
Datei3.txt               | 1 +
Liesmich.txt => ReadMe.md | 0
4 Dateien geändert, 3 Einfügungen(+)
Erstellungsmodus 100644 Datei3.TXT
ReadMe umbenennen.txt => ReadMe.md (100%)

Sie können sehen, dass die Änderungen vom Ursprung heruntergeladen und mit dem Klon zusammengeführt wurden.

14. git push

Der Befehl git push wird verwendet, um Änderungen an Remote-Repositorys zu übertragen. Hier ist ein Beispiel für die Ausführung des Push-Befehls:

$git push origin master
Objekte zählen: 2, fertig.
Delta-Komprimierung mit bis zu 4 Threads.
Komprimieren von Objekten: 100% (2/2), fertig.
Schreibende Objekte: 100% (2/2), 242 Byte | 0 Byte/s, fertig.
Gesamt 2 (Delta 1), wiederverwendet 0 (Delta 0)
Zu /LearnGIT/git_essentials/myproject
e67f932… 90dc546  Master -> Master

Der Befehl git push origin master sendet Änderungen an den 'master'-Zweig des Ursprungs (das Git-Repository, das Sie geklont haben) vom 'master'-Zweig des geklonten Repositorys. Optisch sieht der Push so aus:

geklont/master -> origin/master

fünfzehn. git rebase

Der Befehl git rebase hilft Ihnen, die Basis der Branches zu ändern. Bei einer allgemeinen Zusammenführung passiert etwa Folgendes:

Der Test-Branch wurde mit dem 'master'-Branch zusammengeführt, um einen neuen Commit zu erstellen.

Bei einem Rebase passiert folgendes:

Die Änderungen aus der E- und F-Änderungsliste werden neu berechnet und am Ende des Master-Zweigs gelatcht. Rebasing hilft, die Filialen zu vereinfachen.

Nehmen wir an, wir haben diese Situation im 'master'-Zweig:

$ git log --oneline
7f573d8 Commit C: c added hinzugefügt.TXT
795da3c Commit B: hinzugefügt b.TXT
0f4ed5b Commit A: hinzugefügt a.TXT

Und ein Feature-Zweig:

$ git log --oneline
8ed0c4e Commit F: modifiziertes b.TXT
6e12b57 Commit E: modifiziert a.TXT
795da3c Commit B: hinzugefügt b.TXT
0f4ed5b Commit A: hinzugefügt a.TXT

Wenn wir rebasieren, erhalten wir git rebase master:

$ git Checkout-Funktion
Zu Zweig 'Feature' gewechselt
$ git rebase master

Zuerst den Kopf zurückspulen, um Ihre Arbeit darüber abzuspielen…

Anwenden: Commit E: geändert a.TXT
Anwenden: Commit F: modifiziert b.TXT
Dann 'feature' in 'master' zusammenführen.
$ git checkout master
Auf Zweig 'master' gewechselt
$ git Merge-Funktion
Aktualisieren 7f573d8… 9efa1a3
Schneller Vorlauf
ein.txt | 1 +
b.txt | 1 +
2 Dateien geändert, 2 Einfügungen(+)

Wenn Sie nun sowohl zum 'master'- als auch zum 'feature'-Zweig gehen, sehen Sie dieselben Protokolle:

$ git log --oneline
9efa1a3 Commit F: modifiziert b.TXT
8710174 Commit E: geändert a.TXT
7f573d8 Commit C: c added hinzugefügt.TXT
795da3c Commit B: hinzugefügt b.TXT
0f4ed5b Commit A: hinzugefügt a.TXT

Rebasing hat sie zusammengequetscht.

Hinweis: Verwenden Sie niemals Rebasing in öffentlichen Repositorys, da Entwickler auf größere Merge-Probleme stoßen werden.

16. git fernbedienung

Mit dem Befehl git remote können Sie einen Remote-Server für Ihr Repository einrichten. In einer Klon-Situation wird das Quell-Repository automatisch zum Remote.

Beispielsweise:

$pwd
/LearnGIT/git_essentials/test
$git remote -v
Herkunft  /LearnGIT/git_essentials/myproject (fetch)
Herkunft  /LearnGIT/git_essentials/myproject (push)

Das obige zeigt, dass der Remote-Server für 'test' ein anderer Ordner namens 'myproject' ist. Der Grund ist, dass 'test' für mein Projekt geklont wurde.

Aber der Remote-Server muss nicht lokal sein. Sie können so etwas mit einer URL haben:

$git remote -v
Herkunft https://github.com/zakh/myproject (holen)
Herkunft https://github.com/zakh/myproject (drücken)

Sie können ein git remote Repository mit dem Befehl git remote add einrichten :

$git remote Ursprung hinzufügen https://github.com/zakh/myproject

Dadurch wird Ihr Repository mit dem Ursprung verbunden, damit Sie es abrufen und verschieben können.

17. git zurücksetzen

Mit dem git reset können Sie hinzugefügte Dateien rückgängig machen.

Angenommen, Sie haben die Datei 'test . hinzugefügt.txt' in Ihr Repository:

$Touch-Test.TXT
$git add -A
$git-Status
Auf Zweigmeister
Ihre Filiale ist aktuell mit 'Herkunft/Master'.
Zu verpflichtende Änderungen:
(benutze 'git reset HEAD … ' aufheben)
neue Datei:   test.TXT

Sie entscheiden sich jedoch, dass Sie "Test" nicht verfolgen möchten.txt' mehr. Sie können den git reset Head verwenden Befehl zum Auslagern der Datei:

$git HEAD-Test zurücksetzen.TXT

Wenn Sie den Status überprüfen, wird die Datei wieder nicht verfolgt:

$git-Status
Auf Zweigmeister
Ihre Filiale ist aktuell mit 'Herkunft/Master'.
Nicht verfolgte Dateien:
(benutze 'git add … ' um einzubeziehen, was begangen wird)
Prüfung.TXT

Die Datei 'test.txt' wird nicht mehr verfolgt.

18. git zurück

Mit dem Befehl git revert können Sie Änderungen mit der Commit-Hash-Nummer rückgängig machen.

$echo 'Test 1' >> MyFile.TXT
$git add -A
$git commit -m 'Änderung 1 hinzugefügt'
[master 78a8277] Änderung 1 hinzugefügt
2 Dateien geändert, 1 Einfügung(+)
Erstellungsmodus 100644 MyFile.TXT
Modus erstellen 100644 Test.TXT
$cat MyFile.TXT
Test 1
$echo 'Test 2' >> MyFile.TXT
$git add -A
$git commit -m 'Änderung 2 hinzugefügt'
[master a976e9c] Änderung 2 hinzugefügt
1 Datei geändert, 1 Einfügung (+)
$cat MyFile.TXT
Test 1
Test 2
$git log --oneline
a976e9c Änderung 2 hinzugefügt
78a8277 Änderung 1 hinzugefügt
90dc546 Datei hinzugefügt Added
e67f932 Neue Dateien hinzugefügt
7e11910 Zwei neue Dateien hinzugefügt
b31d4e1 Erster Commit

Wir haben eine 'MyFile . erstellt.txt“ und zwei Änderungen festgeschrieben, sodass die Datei die Zeilen „Test 1“ und „Test 2“ enthält. Aber wir haben uns entschieden, dass wir den zweiten Commit nicht wollen. Also haben wir den Commit-Hash (a976e9c) dafür gefunden. Wir können den git revert verwenden um den Commit loszuwerden:

$git revert a976e9c
[master 4f270e7] 'Änderung 2 hinzugefügt' rückgängig machen
1 Datei geändert, 1 gelöscht(-)
$git log --oneline
4f270e7 'Änderung 2 hinzugefügt' rückgängig machen
a976e9c Änderung 2 hinzugefügt
78a8277 Änderung 1 hinzugefügt
90dc546 Datei hinzugefügt Added
e67f932 Neue Dateien hinzugefügt
7e11910 Zwei neue Dateien hinzugefügt
b31d4e1 Erster Commit
$cat MyFile.TXT
Test 1

Wir sehen, dass ein neuer Commit-Hash erstellt wurde, der das Commit der Zeile 'Test 2' zurückgesetzt hat. Die Datei hat jetzt nur noch die Zeile 'Test 1'.

19. git rm

Der Befehl git rm richtet Dateien für zukünftige Löschungen ein. Es legt die zu löschenden Dateien in den Staging-Bereich.

$git rm test.TXT
rm 'test.TXT'
$git-Status
Auf Zweigmeister
Dein Branch ist 'origin/master' um 3 Commits voraus.
(Verwenden Sie 'git push', um Ihre lokalen Commits zu veröffentlichen)
Zu verpflichtende Änderungen:
(benutze 'git reset HEAD … ' aufheben)
gelöscht:    test.TXT

Sie müssen die Änderungen bestätigen, damit das Löschen wirksam wird.

20. git stash

Mit dem Befehl git stash können Sie Arbeiten, die Sie noch nicht ausführen möchten, vorübergehend aufgeben.
Angenommen, Sie arbeiten in einem Repository mit den folgenden Dateien:

$ls
John.txt   Maria.TXT
Sie möchten diese Dateien projektbezogener ändern. Sie beginnen also mit:
$git mv John.txt Projektdatei1.TXT
$ls
Maria.txt       Projektdatei1.TXT
$git-Status
Auf Zweigmeister
Zu verpflichtende Änderungen:
(benutze 'git reset HEAD … ' aufheben)
umbenannt:    John.txt -> ProjektDatei1.TXT

Mitten in der Umbenennung und Aktualisierung von 'John.txt' in 'ProjektDatei1.txt' erhalten Sie eine Aufforderung, etwas im Projekt zu ändern. Aber Sie sind nicht bereit, 'ProjectFile1 . einzureichen.TXT'. Also verstaust du es.

$git Vorrat

Gespeichertes Arbeitsverzeichnis und Indexstatus WIP auf Master: f0b5a01 Init John and Mary

HEAD ist jetzt bei f0b5a01 Init John und Mary

$ls
John.txt   Maria.TXT

Ihre lokale Arbeitsumgebung ist wieder da, wo Sie waren, bevor Sie Ihre projektbasierten Änderungen vorgenommen haben. Nach der Unterbrechung, anstatt zu 'John . zurückzukehren.txt', entscheidest du dich, an der 'Mary.txt'-Datei jetzt:

$git mv Mary.txt Projektdatei2.TXT
$git-Status
Auf Zweigmeister
Zu verpflichtende Änderungen:
(benutze 'git reset HEAD … ' aufheben)
umbenannt:    Mary.txt -> ProjektDatei2.TXT
$ls
John.txt       ProjectFile2.TXT

Du wirst wieder unterbrochen und du verstaust deine neue Arbeit an 'Mary.TXT':

$git Vorrat
Gespeichertes Arbeitsverzeichnis und Indexstatus WIP auf Master: f0b5a01 Init John and Mary
HEAD ist jetzt bei f0b5a01 Init John und Mary
$ls
John.txt   Maria.TXT

Nachdem die Unterbrechungsarbeit erledigt ist, überprüfen Sie die Stash-Liste:

$git Vorratsliste
stash@0: WIP auf Master: f0b5a01 Init John und Mary
stash@1: WIP auf Master: f0b5a01 Init John und Mary

Du hast zwei Work-in-Progress (WIP) im Stash. Wenn du zum ersten Mal den Vorrat aufklappst, bekommst du die neueste 'Mary.txt' Änderungen:

$git Stash Pop
Maria entfernen.TXT
Auf Zweigmeister
Zu verpflichtende Änderungen:
(benutze 'git reset HEAD … ' aufheben)
neue Datei:   ProjectFile2.TXT
Änderungen, die nicht für Commit bereitgestellt werden:
(benutze 'git add/rm … ' um zu aktualisieren, was festgeschrieben wird)
(benutze 'git checkout -- … ', um Änderungen im Arbeitsverzeichnis zu verwerfen)
gelöscht:    Maria.TXT
Verlorene Refs/Stash@0 (9b77a6b75e4e414fb64de341668c812d3d35150c)

Wenn du das zweite Mal den Vorrat aufklappst, bekommst du den 'John.txt'-bezogene Änderungen:

$git Stash Pop
John entfernen.TXT
Auf Zweigmeister
Zu verpflichtende Änderungen:
(benutze 'git reset HEAD … ' aufheben)
neue Datei:   ProjectFile1.TXT
neue Datei:   ProjectFile2.TXT
Änderungen, die nicht für Commit bereitgestellt werden:
(benutze 'git add/rm … ' um zu aktualisieren, was festgeschrieben wird)
(benutze 'git checkout -- … ', um Änderungen im Arbeitsverzeichnis zu verwerfen)
gelöscht:    John.TXT
gelöscht:    Maria.TXT
Verlorene Refs/Stash@0 (1e1968854fb5ca4d609e577822dc3280dbf928f6)
$ls
Projektdatei1.txt   Projektdatei2.TXT

Und Sie haben Ihre in Arbeit befindliche "ProjectFile1".txt' und 'ProjektDatei2.txt' zurück.

Der Befehl git stash hilft Ihnen also, Ihre Arbeit zu verstauen, damit Sie später darauf zurückkommen können.

21. Git-Status

Der Befehl git status zeigt den Unterschied zwischen aktuellen Dateien und dem HEAD-Commit an.

Hier ist ein Beispiel:

$git-Status
Auf Zweigmeister
Zu verpflichtende Änderungen:
(benutze 'git reset HEAD … ' aufheben)
umbenannt:    Datei2.txt -> Datei3.TXT
Änderungen, die nicht für Commit bereitgestellt werden:
(benutze 'git add … ' um zu aktualisieren, was festgeschrieben wird)
(benutze 'git checkout -- … ', um Änderungen im Arbeitsverzeichnis zu verwerfen)
geändert:   Datei1.TXT

Es zeigt, dass 'Datei2.txt“ wird in „Datei3“ umbenannt.txt', die zum Commit bereit ist, aber die Änderungen in 'File1.txt' ist noch nicht im Staging-Bereich.

Also fügen wir alles hinzu:

$git add -A

Wenn wir jetzt den Status überprüfen:

$git-Status
Auf Zweigmeister
Zu verpflichtende Änderungen:
(benutze 'git reset HEAD … ' aufheben)
geändert:   Datei1.TXT
umbenannt:    Datei2.txt -> Datei3.TXT

Wir sehen, dass alle Änderungen bereit für die Übergabe sind.

22. git tag

Der Befehl git tag hilft Ihnen, Tags für Ihre wichtigen historischen Punkte zu erstellen. Es wird im Allgemeinen verwendet, um Versionsnummern einzurichten.

Der Befehl git tag zeigt Ihnen die aktuell verfügbaren Tags an:

$git-Tag
v1.0
v2.0

Sie können mit dem Befehlsformat git tag taggen :

$git-Tag v3.0

Um zu sehen, was im Tag enthalten ist, können Sie den Befehl git show verwenden:

$git show v1.0
begehen 61e9e8aa1b98b2a657303e6822b291d2374314b5
Autor: Zak H
Datum:   Do 22. Nov 01:06:42 2018 -0800
Erstes Commit
diff --git a/1.txt b/1.TXT
neuer Dateimodus 100644
Index 0000000… e69de29

Sie können auch einen Commit-Hash und das Befehlsformat git tag verwenden :

$git log --oneline
374efe9 Geänderte Datei
a621765 Hinzufügen
6d6ed84 Zweites Commit
61e9e8a Erster Commit
$git-Tag v4.0 a621765
$git show v4.0
begehen a6217650a2c7b2531ecb9c173ba94bd4b3ba7abd
Autor: Zak H
Datum:   Do 22. Nov 01:15:55 2018 -0800
Hinzufügen
diff --git a/1.txt b/1.TXT
Index e69de29… 587be6b 100644
--- a/1.TXT
+++ b/1.TXT
@@ -0,0 +1 @@

Abschließend

Für jeden Befehl können Sie git . verwenden -h um mehr zu erfahren.

Weiteres Studium

  • https://git-scm.com/docs
Battle for Wesnoth-Tutorial
The Battle for Wesnoth ist eines der beliebtesten Open-Source-Strategiespiele, die Sie derzeit spielen können. Dieses Spiel befindet sich nicht nur se...
0 A.D. Lernprogramm
Von den vielen Strategiespielen da draußen, 0 A.D. schafft es, sich trotz Open Source als umfassender Titel und sehr tiefgehendes, taktisches Spiel ab...
Unity3D-Tutorial
Einführung in Unity 3D Unity 3D ist eine leistungsstarke Engine für die Spieleentwicklung. Es ist plattformübergreifend, das heißt, Sie können Spiele ...