Top 10 wesentliche Git -Befehle

Top 10 wesentliche Git -Befehle
Git ist das typische Versionskontrollsystem geworden. Der Aufstieg der Popularität von Git kann auf Geschwindigkeit, Beweglichkeit und Vielseitigkeit zurückgeführt werden. Unabhängig davon. Es hilft Ihnen, Ihre Dateien über systematische Versionen zu verfolgen. Git erleichtert das Rollen von älteren Codeversionen oder Erstellen neuer Zweige, um mit der aktuellen Codebasis zu experimentieren. Außerdem ist Git ein verteiltes Versionskontrollsystem, was bedeutet, dass Sie nicht immer eine Verbindung zu einem zentralen Server herstellen müssen, um Ihre Arbeit zu erledigen.Im Folgenden finden Sie die wesentlichen GIT-Befehle, die bei Ihren täglichen Aufgaben helfen werden. Die einfachen Beispiele geben Ihnen ein Verständnis der Befehle, sodass Sie sich leicht an die Syntax erinnern können, wenn Sie sie verwenden müssen.

1. Git Add

Mit dem Befehl git add können mit der verfolgung von Dateien und Ordnern für Ihr Git -Repository nachverfolgen und in den Staging -Bereich verschoben werden. Sie müssen den Befehl git Commit verwenden, um sie auf Ihren historischen Schnappschüssen dauerhaft zu gestalten.

Die Verwendung des Befehls ist einfach. Sie können wählen, ob Sie Dateien und Ordner einzeln hinzufügen oder einen LINUX -Typ -Sternchen (*) GLOB -Operator verwenden können, um sie in Gruppen hinzuzufügen.

Nehmen wir das folgende Beispiel:

Angenommen, wir haben im obigen Fall die Readme bereits hinzugefügt.txt. Aber der Rest der Dateien wurde nicht hinzugefügt.

Lassen Sie uns den Status überprüfen:

$ Git Status
Auf Branch Master
Ihr Zweig ist auf dem neuesten Stand mit "Herkunft/Master".
Unbekannte Dateien:
(Verwenden Sie 'Git Add…', um in das 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 mit:

$ git fügen Sie Datei hinzu1.txtdatei2.txt order1/*

Wenn wir jetzt den Status überprüfen:

$ Git Status
Auf Branch Master
Ihr Zweig ist auf dem neuesten Stand mit "Herkunft/Master".
Änderungen, die begangen werden müssen:
(Verwenden Sie 'Git Reset Head…', um sich zu lösen)
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 dem Staging -Bereich hinzugefügt. Dateien werden im Staging -Bereich aufbewahrt, bevor sie durch den Commit -Prozess dauerhaft werden.

2. Git -Zweig

Auf Git ist die Verzweigung einfach. In anderen Versionskontrollsystemen war es ein teurer Betrieb. Git -Algorithmen sind jedoch für die Verzweigung optimiert. Sie können also den Befehl git branchen verwenden, wenn Sie eine separate Entwicklungslinie erstellen möchten, ohne sich um die Leistung zu sorgen.

Schauen wir uns das folgende Beispiel an.

$ Git Status
Auf Branch Master
Ihr Zweig ist auf dem neuesten Stand mit "Herkunft/Master".
Änderungen, die begangen werden müssen:
(Verwenden Sie 'Git Reset Head…', um sich zu lösen)
Neue Datei: Datei1.txt
Neue Datei: Datei2.txt
Neue Datei: Ordner1/Datei3.txt
Neue Datei: Ordner1/Datei4.txt

Beachten Sie, dass wir "am Zweigmeister" sind. Wenn Sie ein neues Projekt erstellen, werden Sie in Branch Master enden. Sie können auch den Befehl Git Branch -A verwenden, um herauszufinden, in welcher Zweigstelle 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 Zweig namens "Test":

$ Git Branch Testing

Jetzt können wir die Zweige erneut überprüfen:

$ Git Branch -a
* Meister
testen

Obwohl wir immer noch in der "Master" -Ast sind, können wir auch den neuen "Test" -Ast sehen, der erstellt wurde. Der "Test" -Ast ist eine Nachbildung des "Master" -Asts.

3. Git Checkout

Mit dem Git -Checkout -Befehl führt Sie zu einer Filiale, damit Sie an den Ressourcen dort arbeiten können. Sie können sich Zweige als Flüsse und Ströme vorstellen. Mit einem Zweig erstellen Sie einen neuen Stream. Mit dem Befehl Checkout gehen Sie in diesen Stream ein.

Lassen Sie uns den "Test" -Ast aus dem vorherigen Beispiel auschecken:

$ git checkout testing
Auf Branch "Tests" umgeschaltet

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

$ Git Status
Bei Zweigtests
Nichts zu begehen, Arbeitsverzeichnis sauber
$ Git Branch -a
Meister
* testen

Sie können aus dem Befehl git ast -a sehen, dass wir in den Testzweig übergegangen sind.

4. Git -Klon

Mit dem Befehl git clone können Sie eine Kopie eines Git -Repositorys erstellen. Sobald Sie ein Repository klonen, wird der neue geklonte Ordner die Änderungen lokal 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 MyProject
$ cd MyProject/
$ git init
Initialisierte leeres Git -Repository in/Dir1/MyProject/.Git/
$ touch Readme.txt
$ git Commit -m 'initialisieren Sie mein Repository'
[Master (Root-Commit) 5A0BD75] Initialisieren Sie mein Repository
1 Datei geändert, 0 Insertionen (+), 0 Löschungen (-)
Erstellen Sie den Modus 100644 Readme.txt

Im obigen Beispiel haben wir das Git -Repository mit dem Namen "MyProject" in 'Dir1' erstellt. Angenommen, dies ist unser Haupt -Repository. Jetzt wollen wir eine Kopie daraus machen und woanders arbeiten.

Erstellen wir ein Verzeichnis namens "DIR2" und klonen Sie das "MyProject" -Repository. Wir verwenden den Git -Klon, um "MyProject" zu klonen:

$ mkdir dir2
$ cd Dir2
$ git klone/dir1/MyProject/
Klonen in 'MyProject'…
Erledigt.
$ ls
Mein Projekt

Der Befehl git klon funktioniert auch mit einer URL.

$ git klone https: // github.com/test/test.Git

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

$ git klone 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 zur Verfolgung hinzugefügt, aber wir hatten sie nicht dem Git -Repository verpflichtet. Tracking bleibt einheimisch, bis ein Commit gemacht wird. Wenn Sie die Änderungen begehen, werden sie Teil der ständigen Aufzeichnung.

Im Folgenden führen wir den Befehl git Commit -m aus:

$ git Commit -m 'meine Dateien und Ordner engagiert'
[Master 3ef57b3] meine Dateien und Ordner begehen
4 Dateien geändert, 0 Insertionen (+), 0 Löschungen (-)
Erstellen Sie den Modus 100644 Datei1.txt
Erstellen Sie den Modus 100644 Datei2.txt
Erstellen Sie den Modus 100644 Ordner1/Datei3.txt
Erstellen Sie den Modus 100644 Ordner1/Datei4.txt

Wenn Sie die Option -m nicht verwenden, um einen Kommentar abzugeben, öffnet Git Ihren Standardtext -Editor und fragen Sie ihn. Kommentare gelten als gute Versionskontrollpraxis. Setzen Sie also immer aussagekräftige Kommentare in Ihr Commit ein.

6. Git -Konfiguration

Mit dem Befehl git config können Sie verschiedene Optionen für Ihr Git -Repository einrichten. Beispielsweise können Sie den Befehl Git config -global verwenden, um Ihren Benutzer zu erhalten und festzulegen.Name und Benutzer.Email.

So können Sie die Werte festlegen:

$ git config --global Benutzer.Nennen Sie 'Zak H'
$ git config --global Benutzer.E -Mail [email protected]

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

$ git config --global Benutzer.Name
Zak h
$ git config --global Benutzer.Email
[email protected]

7. Git diff

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

Nehmen wir an, wir beginnen unsere Arbeit mit einem Readme.TXT -Datei mit zwei Zeilen. Dann werden wir die zweite Zeile los und fügen eine dritte Zeile hinzu.

Wenn wir nun den Diff -Befehl ausführen. 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 holt

Der Befehl git fetch erhält die neuesten ressourcen aus dem angegebenen Ursprung.

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

Dir1/MyProject
Dir2/MyProject (kloniert)

Der Ordner 'Dir2/MyProject' ist aus 'Dir1/MyProject' kloniert. Wenn jemand Änderungen an "Dir1/MyProject" verpflichtet hat, können Sie diese Änderungen wie diese von Innen "Dir2/MyProject" erhalten:

$ git holen Ursprung
Fernbedienung: Zählen von Objekten: 2, erledigt.
Fernbedienung: Komprimierungsobjekte: 100% (2/2), erledigt.
Fernbedienung: Gesamt 2 (Delta 0), wiederverwendet 0 (Delta 0)
Objekte auspacken: 100% (2/2), erledigt.
Von /dir2 /… /dir1 /myProject
5A0BD75… 1713734 Master -> Origin/Master

Es ist wichtig, sich daran zu erinnern, dass der Befehl Git Fetch die Änderungen nicht verschmilzt. Verwenden Sie den Befehl Git Pull, um automatisch abzurufen und zu verschmelzen. Dann fragen Sie sich vielleicht, warum Sie diesen Befehl in erster Linie verwenden. Es kann erweiterte GIT -Optionen geben, bei denen Sie alle Änderungen von Ihrem Origin -Server erhalten und dann nur Änderungen selektiv auf bestimmte Dateien anwenden. Mit dem Befehl git fetch ermöglicht es Ihnen, dies zu erreichen. Es ist jedoch ein erweitertes Thema, das Sie in der Git -Fetch -Dokumentation finden können.

9. Git Grep

Mit dem Befehl git grep ermöglicht es Ihnen, Ihren Git -Baum nach Informationen zu durchsuchen. Hier ist ein Beispiel für die Suche nach der Wort "Zeile" in unserem Git -Repository. Die Option -n oder -Line -Number zeigt Zeilennummern an, bei denen Git eine Übereinstimmung findet:

$ git grep -n line
Liesmich.TXT: 1: Zeile 1: Meine erste Zeile
Liesmich.TXT: 2: Zeile 3: Meine dritte Zeile

Sie können eine ähnliche Suche nach der Häufigkeit ausführen, mit der das Spiel mit -C oder -Count -Option vorhanden ist:

Git Grep -C -Linie
Liesmich.txt: 2

Der Grund für die Verwendung von Git Grep über Linux Grep ist, dass Git Grep für Git -Repositories schneller ist.

10. Git -Protokoll

Der Befehl Git -Protokoll zeigt Ihnen den Commit -Geschichte an.

$ git log
Commit 171373479fc309846ef605fbe650933767afd0fb
Autor: Zak H
Datum: Mi 21. November 20:26:32 2018 -0800
Neue Dateien hinzugefügt
Commit 5A0BD759506D20B2B989873258BF60D003AAA3D36
Autor: Zak H
Datum: Mi 21. November 18:48:35 2018 -0800
Initialisieren Sie mein Repository

Sie können auch die Option -Einsatz verwenden, um eine abgekürzte Version anzuzeigen. Die abgekürzte Version ist einfacher zu befolgen.

$ Git -Protokoll -Einmal
1713734 Neue Dateien hinzugefügt
5A0BD75 Initialisieren Sie mein Repository

11. Git verschmelzen

Der Befehl git merge verschmiert Zweige.

Erstellen wir ein neues Repository mit "Main" und dann einen "Test" -Ast.

$ mkdir MyProject
$ cd MyProject
$ git init
Initialisierte leere Git -Repository in/git_essentials/myProject/.Git/
$ touch Readme.txt
$ git add -a
$ git Commit -m 'Erstes Commit' '
[Master (Root-Commit) B31D4E1] Erstes Commit
1 Datei geändert, 0 Insertionen (+), 0 Löschungen (-)
Erstellen Sie den Modus 100644 Readme.txt
$ Git Branch Test
$ Git Branch -a
* Meister
prüfen
$ Git Checkout -Test
Zum Zweig "Test" umgeschaltet

Lassen Sie uns im "Test" -Ast einige Änderungen vornehmen:

$ touch Datei1.txtdatei2.txt
$ Ls
Datei1.txtdatei2.txt readme.txt
$ git add -a
$ Git Commit -m 'Fügte zwei neue Dateien hinzu.'
[Test 7E11910] Fügte zwei neue Dateien hinzu
2 Dateien geändert, 0 Insertionen (+), 0 Löschungen (-)
Erstellen Sie den Modus 100644 Datei1.txt
Erstellen Sie den Modus 100644 Datei2.txt

Wir haben dem Test zwei Dateien hinzugefügt.

$ Git Branch -a
Meister
* prüfen
$ ls
Datei1.txtdatei2.txt readme.txt
$ Git Checkout Master
Zum Branch "Master" umgestellt
$ Git Branch -a
* Meister
prüfen
$ ls
Liesmich.txt

Wir sehen aus der oben genannten Datei1.txt und Datei2.TXT existiert in 'Test' Zweig, aber nicht in 'Master'.

Lassen Sie uns jetzt verschmelzen.

$ git merge test
Aktualisieren von B31D4E1… 7E11910
Schnell vorwärts
Datei1.txt | 0
Datei2.txt | 0
2 Dateien geändert, 0 Insertionen (+), 0 Löschungen (-)
Erstellen Sie den Modus 100644 Datei1.txt
Erstellen Sie den Modus 100644 Datei2.txt
$ ls
Datei1.txtdatei2.txt readme.txt
$ Git Branch -a
* Meister
prüfen

Jetzt haben wir 'Datei1.txt 'und' Datei2.txt 'in' Master 'Zweig auch.

Hinweis: Denken Sie vor, als Pull -Operation zu verschmelzen. Sie müssen in der Filiale sein, mit der Sie zusammenarbeiten möchten. In diesem Fall befinden Sie sich im "Master" -Ast und ziehen die Änderungen aus dem "Test" -Ast ab.

12. Git MV

Der Git MV ist ein kurzer Schnittbefehle zum Ausführen von Git -Add- und Git RM -Befehlen. Es kann verwendet werden, um Dateien umzubenennen.

Hier ist ein Beispiel:

$ git mv readme.txt readme.md
$ Git Status
Auf Branch Master
Änderungen, die begangen werden müssen:
(Verwenden Sie 'Git Reset Head…', um sich zu lösen)
Umbenannt: Readme.txt -> readme.md

13. Git ziehen

Der Befehl Git Pull ähnelt dem Git -Abruf, außer dass die Zusammenführung automatisch stattfindet.

Hier ist ein Beispiel für das Ausführen von Git -Pull -Ursprung wie das Git -Fetch (wir führen eine Pull -Anfrage aus dem Klon aus, um Änderungen aus dem ursprünglichen Git -Repository abzurufen):

$ git ziehen Ursprung
Fernbedienung: Zählen von Objekten: 3, erledigt.
Fernbedienung: Komprimierungsobjekte: 100% (2/2), erledigt.
Fernbedienung: Gesamt 3 (Delta 0), wiederverwendet 0 (Delta 0)
Objekte auspacken: 100% (3/3), erledigt.
Von/lerngit/git_essentials/myProject
7E11910… E67F932 Master -> Origin/Master
Aktualisieren 7E11910… E67F932
Schnell vorwärts
Datei1.txt | 1 +
Datei2.txt | 1 +
Datei3.txt | 1 +
Liesmich.txt => readme.md | 0
4 Dateien geändert, 3 Einfügungen (+)
Erstellen Sie den Modus 100644 Datei3.txt
Leiten Sie Readme um.txt => readme.MD (100%)

Sie können sehen, dass Änderungen aus dem Ursprung heruntergeladen und in den Klon verschmolzen wurden.

14. Git Push

Der Befehl git push wird verwendet, um Änderungen in Remote -Repositories zu verschieben. Hier ist ein Beispiel für das Ausführen des Push -Befehls:

$ Git Push Origin Master
Zählen von Objekten: 2, erledigt.
Delta -Komprimierung mit bis zu 4 Fäden.
Komprimierungsobjekte: 100% (2/2), fertiggestellt.
Schreibobjekte: 100% (2/2), 242 Bytes | 0 Bytes/s, fertig.
Gesamt 2 (Delta 1), wiederverwendet 0 (Delta 0)
An/lerngit/git_essentials/myProject
E67F932… 90DC546 Master -> Master

Der Befehl Git Push Origin Master sendet Änderungen an den "Master" -Ast des Ursprungs (das von Ihnen klonierte Git -Repository) aus dem "Master" -Ast des geklonten Repositorys. Visuell sieht der Druck so aus:

Klon/Master -> Herkunft/Master

15. Git -Rebase

Der Befehl git rebase hilft Ihnen, die Basis der Zweige zu ändern. In einer allgemeinen Zusammenführung geschieht so etwas:

Der Testzweig wurde in den "Master" -Ast zusammengefasst, um ein neues Komitee zu schaffen.

In einer Neubase passiert das:

Die Änderungen von E und F Changelist werden am Ende des Master -Zweigs neu berechnet und verriegelt. Das Wiederaufbau hilft dabei, die Zweige zu vereinfachen.

Nehmen wir an, wir haben diese Situation in der "Master" -Ast:

$ Git -Protokoll -Einmal
7f573d8 Commit C: C: C hinzugefügt c.txt
795da3c Commit B: hinzugefügt B hinzugefügt.txt
0f4ed5b Commit a: hinzugefügt a.txt

Und ein Feature -Zweig:

$ Git -Protokoll -Einmal
8ed0c4e Commit f: Modifiziert B.txt
6E12B57 Commit E: Modifiziert a.txt
795da3c Commit B: hinzugefügt B hinzugefügt.txt
0f4ed5b Commit a: hinzugefügt a.txt

Wenn wir wiederherstellen, bekommen wir Git Rebase Master:

$ Git Checkout -Funktion
Auf die Filiale "Feature" umgeschaltet
$ Git Rebase Master

Zunächst einmal, den Kopf zurückspulen, um Ihre Arbeit darüber nachzubilden…

Bewerbung: Commit E: Modifiziert a.txt
Bewerbung: Commit f: Modifiziert B.txt
Dann merken Sie "Feature" in "Master".
$ Git Checkout Master
Zum Branch "Master" umgestellt
$ git merge feature
Aktualisieren von 7F573D8… 9EFA1A3
Schnell vorwärts
A.txt | 1 +
B.txt | 1 +
2 Dateien geändert, 2 Einfügungen (+)

Wenn Sie nun sowohl in den "Master" als auch in die "Feature" -Ast gehen, sehen Sie dieselben Protokolle:

$ Git -Protokoll -Einmal
9efa1a3 Commit f: Modifiziert B.txt
8710174 Commit E: Modifiziert a.txt
7f573d8 Commit C: C: C hinzugefügt c.txt
795da3c Commit B: hinzugefügt B hinzugefügt.txt
0f4ed5b Commit a: hinzugefügt a.txt

Wiedergeburt hat sie zusammen gequetscht.

Hinweis: Verwenden Sie niemals den Wiederaufbau in öffentlichen Repositories, da Entwickler wichtige Zusammenführungsfragen treffen werden.

Git Remote

Mit dem Befehl git remote können Sie einen Remote -Server für Ihr Repository festlegen. In einer Klonsituation wird das Quell -Repository automatisch zur Fernbedienung.

Zum Beispiel:

$ pwd
/Lerngit/git_essentials/test
$ git remote -v
Origin/Learngit/Git_essentials/MyProject (Fetch)
Origin/Learngit/Git_essentials/MyProject (Push)

Die obigen zeigt, dass der Remote -Server für "Test" ein weiterer Ordner mit dem Namen "MyProject" ist. Der Grund dafür ist, dass "Test" für mein Projekt kloniert wurde.

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

$ git remote -v
Herkunft https: // github.com/zakh/MyProject (Fetch)
Herkunft https: // github.com/zakh/MyProject (Push)

Sie können ein Git Remote -Repository mit dem Befehl Git Remote Add einrichten:

$ git remote hinzufügen Herkunft https: // github.com/zakh/myProject

Dadurch verbindet Ihr Repo mit dem Ursprung, damit Sie holen und schieben können.

17. Git Reset

Mit dem Git Reset können Sie hinzugefügte Dateien abbauen.

Nehmen wir an, Sie haben die Datei -Test hinzugefügt.txt 'zu Ihrem Repository:

$ Touch Test.txt
$ git add -a
$ Git Status
Auf Branch Master
Ihr Zweig ist auf dem neuesten Stand mit "Herkunft/Master".
Änderungen, die begangen werden müssen:
(Verwenden Sie 'Git Reset Head…', um sich zu lösen)
Neue Datei: Test.txt

Sie entscheiden jedoch, dass Sie den Test nicht verfolgen möchten.Txt 'mehr. Sie können den Befehl Git Reset Head verwenden, um die Datei zu lösen:

$ git Reset Head Test.txt

Wenn Sie den Status überprüfen, ist die Datei erneut nicht abgeschlossen:

$ Git Status
Auf Branch Master
Ihr Zweig ist auf dem neuesten Stand mit "Herkunft/Master".
Unbekannte Dateien:
(Verwenden Sie 'Git Add…', um in das einzubeziehen, was begangen wird)
prüfen.txt

Die Datei "Test.txt 'wird nicht mehr verfolgt.

18. Git kehren zurück

Mit dem Befehl git revert können Sie Änderungen mithilfe der Commit -Hash -Nummer umkehren.

$ echo 'test 1' >> myfile.txt
$ git add -a
$ Git Commit -m 'Änderung hinzugefügt 1'
[Master 78A8277] Änderung 1 hinzugefügt 1
2 Dateien geändert, 1 Einfügung (+)
Erstellen Sie den Modus 100644 MyFile.txt
Erstellen Sie den Modus 100644 Test.txt
$ cat myfile.txt
Test 1
$ echo 'test 2' >> myfile.txt
$ git add -a
$ git Commit -m 'ADDAGE 2 addiert 2'
[Master A976E9c] Änderung 2 hinzugefügt 2 hinzugefügt
1 Datei geändert, 1 Einfügung (+)
$ cat myfile.txt
Test 1
Test 2
$ Git -Protokoll -Einmal
A976E9c Änderung 2 hinzugefügt 2
78A8277 Hinzufügen von Änderung 1
90DC546 fügte eine Datei hinzu
E67F932 neue Dateien hinzugefügt
7E11910 wurden zwei neue Dateien hinzugefügt
B31D4E1 Erstes Commit

Wir haben eine 'Myfile erstellt.TXT 'und verpflichtete sich zwei Änderungen, sodass die Datei die Zeilen "Test 1" und "Test 2" enthält. Aber wir haben beschlossen, dass wir nicht den zweiten Commit wollen. Also fanden wir den Commit Hash (A976E9c) dafür. Wir können den Git -Rückzug verwenden, um das Commit zu entfernen:

$ git revert A976E9c zurück
[Master 4F270E7] Rückkehr 'Hinzufügen von Change 2'
1 Datei geändert, 1 Löschen (-)
$ Git -Protokoll -Einmal
4f270e7 revert 'hinzugefügte Änderung 2' '
A976E9c Änderung 2 hinzugefügt 2
78A8277 Hinzufügen von Änderung 1
90DC546 fügte eine Datei hinzu
E67F932 neue Dateien hinzugefügt
7E11910 wurden zwei neue Dateien hinzugefügt
B31D4E1 Erstes Commit
$ cat myfile.txt
Test 1

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

19. Git RM

Der Befehl git rm legt Dateien für zukünftige Löschungen ein. Es stellt die Dateien zu dem Zähler in den Staging-Bereich ein.

$ git rm test.txt
RM 'Test.txt'
$ Git Status
Auf Branch Master
Ihre Niederlassung ist von 3 Commits vor "Origin/Master" voraus.
(Verwenden Sie "Git Push", um Ihre lokalen Commits zu veröffentlichen)
Änderungen, die begangen werden müssen:
(Verwenden Sie 'Git Reset Head…', um sich zu lösen)
gelöscht: Test.txt

Sie müssen die Änderungen für das Löschen begehen, um wirksam zu werden.

20. Git Stash

Mit dem Befehl git stash ermöglicht es Ihnen, die Arbeit vorübergehend aufzugeben, die Sie noch nicht verpflichten können.
Angenommen, Sie arbeiten in einem Repository mit den folgenden Dateien:

$ ls
John.txt Mary.txt
Sie möchten diese Dateien so ändern, dass sie projektbasierter sind. Also fängst du mit:
$ Git MV John.TXT ProjectFile1.txt
$ ls
Maria.TXT ProjectFile1.txt
$ Git Status
Auf Branch Master
Änderungen, die begangen werden müssen:
(Verwenden Sie 'Git Reset Head…', um sich zu lösen)
Umbenannt: John.txt -> projectFile1.txt

Mitten im Umbenennen und Aktualisieren von John.txt 'zu' projectFile1.TXT 'erhalten Sie eine Anfrage, um etwas im Projekt zu ändern. Sie sind jedoch nicht bereit, 'ProjectFile1 einzureichen1.txt'. Also verstehst du es.

$ git stash

Speichern Arbeitsverzeichnis und Indexstaat WIP auf Master: f0b5a01 init John und Mary

Head ist jetzt bei F0B5A01 init John und Mary

$ ls
John.txt Mary.txt

Ihre lokale Arbeitsumgebung ist zurück zu Ihrer Zeit, bevor Sie Ihre projektbasierten Änderungen vorgenommen haben. Danach, um sich um die Unterbrechung zu kümmern, anstatt zu 'John zurückzukehren.Txt ', Sie beschließen, an der Mary zu arbeiten.TXT 'Datei jetzt:

$ git mv mary.TXT ProjectFile2.txt
$ Git Status
Auf Branch Master
Änderungen, die begangen werden müssen:
(Verwenden Sie 'Git Reset Head…', um sich zu lösen)
Umbenannt: Mary.txt -> projectFile2.txt
$ ls
John.TXT ProjectFile2.txt

Sie werden erneut unterbrochen und Sie verrechnen Sie Ihre neue Arbeit an 'Mary.txt':

$ git stash
Speichern Arbeitsverzeichnis und Indexstaat WIP auf Master: f0b5a01 init John und Mary
Head ist jetzt bei F0B5A01 init John und Mary
$ ls
John.txt Mary.txt

Nachdem die Unterbrechungsarbeiten abgeschlossen sind, überprüfen Sie die Stash -Liste:

$ git stash liste
stash@0: WIP auf Master: f0b5a01 init John und Mary
stash@1: WIP auf Master: f0b5a01 init John und Mary

Sie haben zwei Arbeiten (WIP) im Vorrat. Firs Zeit, die du den Vorrat popst, du bekommst die neueste 'Mary.TXT 'Änderungen:

$ git stash pop
Mary entfernen.txt
Auf Branch Master
Änderungen, die begangen werden müssen:
(Verwenden Sie 'Git Reset Head…', um sich zu lösen)
Neue Datei: ProjectFile2.txt
Änderungen, die nicht für Commits inszeniert sind:
(Verwenden Sie 'Git add/rm…', um zu aktualisieren, was begangen wird)
(Verwenden Sie 'Git Checkout -…', um Änderungen im Arbeitsverzeichnis abzuwerfen)
gelöscht: Mary.txt
Fallengelassene Refs/Stash@0 (9B77A6B75E4E414FB64DE341668C812D3D35150C)

Zweitens, wenn Sie den Versteck packen, bekommen Sie den John.TXT'-bezogene Änderungen:

$ git stash pop
John entfernen.txt
Auf Branch Master
Änderungen, die begangen werden müssen:
(Verwenden Sie 'Git Reset Head…', um sich zu lösen)
Neue Datei: ProjectFile1.txt
Neue Datei: ProjectFile2.txt
Änderungen, die nicht für Commits inszeniert sind:
(Verwenden Sie 'Git add/rm…', um zu aktualisieren, was begangen wird)
(Verwenden Sie 'Git Checkout -…', um Änderungen im Arbeitsverzeichnis abzuwerfen)
gelöscht: John.txt
gelöscht: Mary.txt
Fallengelassene Refs/Stash@0 (1E1968854FB5CA4D609E577822DC3280DBF928F6)
$ ls
ProjectFile1.TXT ProjectFile2.txt

Und Sie haben Ihre Arbeit in der Arbeit von ProjectFile1.txt 'und' projectFile2.Txt 'zurück.

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

21. Git -Status

Der Befehl git status zeigt den differenz zwischen aktuellen Dateien und dem leitenden begehen an.

Hier ist ein Beispiel:

$ Git Status
Auf Branch Master
Änderungen, die begangen werden müssen:
(Verwenden Sie 'Git Reset Head…', um sich zu lösen)
Umbenannt: Datei2.TXT -> Datei3.txt
Änderungen, die nicht für Commits inszeniert sind:
(Verwenden Sie 'Git Add ...', um zu aktualisieren, was begangen wird)
(Verwenden Sie 'Git Checkout -…', um Änderungen im Arbeitsverzeichnis abzuwerfen)
geändert: Datei1.txt

Es zeigt diese Datei2.Txt 'wird in Datei umbenannt3 umbenannt.TXT ', der bereit ist, sich zu engagieren, aber die Änderungen in' Datei1.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 Branch Master
Änderungen, die begangen werden müssen:
(Verwenden Sie 'Git Reset Head…', um sich zu lösen)
geändert: Datei1.txt
Umbenannt: Datei2.TXT -> Datei3.txt

Wir sehen, dass alle Änderungen bereit sind, um festzulegen.

22. Git -Tag

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

Der Befehl Git Tag zeigt Ihnen die aktuellen verfügbaren Tags an:

$ git tag
v1.0
v2.0

Sie können das Befehlsformat Git -Tag markieren:

$ git tag v3.0

Um zu sehen, was sich im Tag befindet, können Sie den Befehl Git Show verwenden:

$ git show v1.0
Commit 61E9E8AA1B98B2A657303E6822B291D2374314B5
Autor: Zak H
Datum: Do 22. November 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 Commith -Hash und das Befehlsformat -Git -Tag mit dem Marketing einstellen:

$ Git -Protokoll -Einmal
374EFE9 Modifizierte Datei
A621765 Add
6d6ed84 Second Commit
61e9e8a Erstes Commit
$ git tag v4.0 A621765
$ git show v4.0
Commit A6217650A2C7B2531ECB9C173BA94BD4B3BA7ABD
Autor: Zak H
Datum: Do 22. November 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 -H verwenden, um weitere Informationen zu erhalten.

Weiteres Studium

  • https: // git-scm.com/docs