Heim  >  Artikel  >  Entwicklungswerkzeuge  >  Zusammenfassung gängiger Git-Befehle

Zusammenfassung gängiger Git-Befehle

藏色散人
藏色散人Original
2019-06-06 16:04:265115Durchsuche

Zusammenfassung gängiger Git-Befehle

Gängige Git-Befehle sind:

git init

Erstellen Sie lokal ein neues Repo und geben Sie es ein In einem Projektverzeichnis wird durch die Ausführung von git init ein Repo initialisiert und ein .git-Ordner unter dem aktuellen Ordner

git clone

erstellt das einer URL entsprechende Remote-Git-Repo und erstellen Sie eine lokale Kopie.

Das allgemeine Format ist Git-Klon [URL].

Auf das geklonte Repo folgt der letzte Schrägstrich des URL-Namens Wenn Sie einen bestimmten Namen angeben möchten, können Sie git clone [url] newname

git status

verwenden Fragen Sie den Status des Repos ab. git status -s: -s bedeutet kurz, die Ausgabemarkierung von -s hat zwei Spalten, die erste Spalte ist für den Staging-Bereich und die zweite Spalte ist für Arbeitsverzeichnis

git log

Commit-Verlauf eines Zweigs anzeigen. git log --oneline --number : Jedes Protokoll zeigt nur eine Zeile mit der Nummer an.

git log --oneline --graph: kann den Zweigzusammenführungsverlauf grafisch darstellen

git log branchname kann ein bestimmtes Zweigprotokoll anzeigen.

git log --oneline branch1 ^branch2, Sie können die Commits in Branch 1, aber nicht in Branch 2 anzeigen. ^ bedeutet, diesen Branch auszuschließen (unter Windows müssen Sie möglicherweise Anführungszeichen zu ^branch2 hinzufügen

git log --decorate zeigt Tag-Informationen an.

git log --author=[Autorenname] kann den Einreichungsverlauf des Autors angeben.

git log -- seit - -before --until --after Filtern Sie Protokolle basierend auf der Commit-Zeit.

--no-merges kann Merge-Commits ausschließen.

git log --grep Filtern Sie basierend auf dem Commit-Informationsprotokoll: git log --grep=keywords

Standardmäßig ist git log --grep --author eine ODER-Beziehung, das heißt, sie wird zurückgegeben, wenn eine davon erfüllt ist, wenn Sie möchten, dass sie eine UND-Beziehung sind Beziehung können Sie die Option --all-match hinzufügen.

git log -S: Filter nach eingeführtem Diff.

Zum Beispiel: git log -SmethodName (beachten Sie, dass es kein Gleichheitszeichen zwischen S und die folgenden Wörter getrennt.

git log -p: Patch anzeigen, der bei jedem Commit eingeführt wird.

Jede Übermittlung ist eine Momentaufnahme, und Git berechnet den Unterschied jeder Übermittlung als A-Patch wird Ihnen angezeigt.

Eine andere Methode ist git show [SHA].

git log --stat: Zeigt Diffstat der bei jedem Commit eingeführten Änderungen an.

Das ist es auch Wird verwendet, um die relativen Informationen zu Änderungen anzuzeigen.

git add

Git verfügt über einen Staging-Bereich (Staging-Bereich), in dem neu hinzugefügte Dateien abgelegt oder neue Änderungen hinzugefügt werden können. Die beim Festschreiben übermittelten Änderungen sind die letzten Änderungen, die dem Staging-Bereich hinzugefügt wurden, nicht die auf unserer Festplatte.

git add .

Fügt rekursiv alle Dateien im aktuellen Arbeitsverzeichnis hinzu.

git diff

git diff ohne Parameter:

Diff der nicht bereitgestellten Änderungen anzeigen.

Dieser Befehl vergleicht den Unterschied zwischen der aktuellen Datei im Arbeitsverzeichnis und dem Snapshot des Staging-Bereichs wurden nach der Änderung nicht vorübergehend gespeichert.

Wenn Sie den Unterschied zwischen den vorübergehend gespeicherten Dateien und dem Schnappschuss der letzten Übermittlung sehen möchten, können Sie Folgendes verwenden:

git diff --cached-Befehl.

Diff von inszenierten Änderungen anzeigen.

(Git 1.6.1 und höher ermöglicht auch die Verwendung von git diff --staged, der Effekt ist derselbe) .

git diff HEAD

diff aller bereitgestellten oder nicht angegebenen Änderungen anzeigen.

Das heißt, das Woking-Verzeichnis mit dem letzten Commit aller Änderungen vergleichen während des Zeitraums.

Wenn Sie sehen möchten, was sich seit einer bestimmten Version geändert hat, können Sie Folgendes verwenden:

git diff [version tag]

Wie der log-Befehl kann auch diff mit dem Parameter --stat hinzugefügt werden, um die Ausgabe zu vereinfachen.

git diff [branchA] [branchB] kann zum Vergleichen zweier Zweige verwendet werden .

Es wird tatsächlich ein Patch von A nach B zurückgegeben, was nicht das gewünschte Ergebnis ist.

Im Allgemeinen ist das gewünschte Ergebnis die Änderungen, nachdem die beiden Zweige getrennt wurden. und werden sie durch den Befehl:

git diff [branchA]...[branchB] bestimmt?

Eigentlich ist es: git diff $(git merge-base [branchA] [branchB ]) [branchB] Das Ergebnis.

git commit

Senden Sie die hinzugefügten Änderungen.

git commit -m „die Commit-Nachricht“

git commit -a fügt zuerst die Änderungen zu allen verfolgten Dateien hinzu und sendet dann ( (ein bisschen wie eine SVN-Einreichung, es ist nicht nötig, sie zuerst vorübergehend zu speichern). Für Dateien ohne Titel müssen Sie immer noch git commit --amend hinzufügen, um die gleiche Elterndatei wie die aktuelle einzureichen Übermittlungsknoten wird verwendet. Der Knoten führt eine neue Übermittlung durch und die alte Übermittlung wird abgebrochen.

git reset

Änderungen und Festschreibungen rückgängig machen . Das Schlüsselwort HEAD bezieht sich hier auf den neuesten Commit am Ende des aktuellen Zweigs. Das heißt, die neueste Version im Zweig im Repository

git reset HEAD: unstage files from indexieren und Zeiger auf HEAD zurücksetzen

Dieser Befehl wird verwendet, um versehentlich hinzugefügte Dateien aus dem bereitgestellten Zustand zu entfernen. Er kann einzeln auf eine bestimmte Datei angewendet werden: git reset HEAD - - Dateiname, dieser - - kann auch weggelassen werden.

git reset --soft

HEAD in eine bestimmte Commit-Referenz verschieben, Index und Staging bleiben unberührt.

git reset --hard

Dateien aus dem Staging entfernen UND alle Änderungen im Arbeitsverzeichnis seit dem letzten Commit rückgängig machen.

Verwenden Sie git reset --hard HEAD zum Zurücksetzen, d. h. alle bereitgestellten Änderungen und Änderungen im Arbeitsverzeichnis nach dem letzten Commit verschwinden und werden gelöscht auf den Zustand des letzten Commits zurückgesetzt.

HEAD kann hier als SHA-1 eines beliebigen Commits geschrieben werden.

Git-Reset ohne Soft- und Hard-Parameter verwendet tatsächlich den gemischten Standardparameter.

Zusammenfassung:

git reset --mixed id ändert den HEAD von git (das heißt, der Commit-Datensatz hat sich geändert), aber die Datei hat sich nicht geändert (das heißt, Der Arbeitsbaum hat sich nicht geändert.) ) Brechen Sie den Inhalt von „commit“ und „add“ ab der Inhalt von commit.

git reset --hard id Ändert den Git-HEAD und die Dateien

Sortiert nach Änderungsbereich wie folgt:

soft (commit) < ; gemischt (Commit + Add) < Hard (Commit + Add + Local Working)

Git Revert

Einfach das Commit umkehren Der Fehler Übergeben Sie einfach den Commit-Namen (Referenz) als Parameter an den Befehl

git revert HEAD: Machen Sie das letzte Commit rückgängig

git revert erstellt ein neues Reverse-Commit Git soll es nicht über den Parameter -n senden.

git rm

git rm file: Dateien aus dem Staging-Bereich entfernen Gleichzeitig wird auch das Arbeitsverzeichnis entfernt.

git rm --cached: Entfernt Dateien aus dem Staging-Bereich, belässt sie jedoch im Arbeitsverzeichnis Äquivalent zu git reset HEAD, löscht den Cache-Bereich, lässt aber den Arbeitsverzeichnisbaum unverändert.

Der übliche Parameter ist git clean -df:

-d bedeutet entfernen Gleichzeitig bedeutet -f „force“, da „requireForce=true“ die Ausführung verweigert, wenn „-f“ nicht hinzugefügt wird git mv

git rm - - zwischengespeichert orig; git add new

git stash

Schieben Sie die aktuellen Änderungen in einen Stapel.

git stash wird alle Änderungen im aktuellen Verzeichnis und Index (jedoch nicht einschließlich nicht verfolgter Dateien) in einen Stapel verschieben und Sie erhalten dann eine Bereinigung Arbeitszustand, d. h. bei der letzten Einreichung.

git stash list zeigt die Liste dieses Stapels an

git stash apply: Entfernen Sie das vorherige Element im Stash (stash@{ 0}) und wenden Sie es auf das aktuelle Arbeitsverzeichnis an.

Sie können auch andere Projekte angeben, z. B. git stash apply stash@{1}.

Wenn Sie das Projekt löschen möchten stash Während Sie es anwenden, können Sie git stash pop

Elemente im Stash löschen:

git stash drop: Löschen Sie das vorherige, oder Sie können Parameter zum Löschen angeben ein bestimmtes Element.

git stash clear: Alle Elemente löschen.

git branch

git branch kann dazu verwendet werden Zweige auflisten, Zweige erstellen und Zweige löschen.

git branch -v kann jeden sehen Das letzte Commit des Zweigs.

git branch: Listet alle lokalen Zweige auf, der aktuelle Zweig wird mit markiert ein Sternchen.

git branch (branchname): Erstellen Sie einen neuen Branch (wenn Sie auf diese Weise einen Branch erstellen, basiert der Branch auf Ihrem letzten Commit

).

git branch -d (Branchname): Einen Zweig löschen.

Remote Branch löschen:

git push (remote-name):(branch-name): Einen Remote Branch löschen.

Dies liegt daran, dass die vollständige Befehlsform wie folgt lautet:

git push remote-name local-branch:remote-branch

Und der Teil „local-branch“ ist hier leer bedeutet, dass remote-branch

git checkout

git checkout (branchname)

Zu einem Branch wechseln.

git checkout -b (branchname): Erstellen und wechseln zu einem neuen Branch.

Dieser Befehl ist das Ergebnis der Kombination von git branch newbranch und git checkout newbranch.

Checkout hat eine weitere Funktion: Ersetzen lokaler Änderungen:

git checkout - -

Dieser Befehl ersetzt die Dateien in Ihrem Arbeitsverzeichnis durch die neuesten Inhalte in HEAD. Änderungen und neue Dateien, die dem Staging-Bereich hinzugefügt wurden, sind davon nicht betroffen

Hinweis: git checkout filename löscht alle Änderungen in der Datei, die nicht bereitgestellt und festgeschrieben wurden.

git merge

Einen Zweig mit dem aktuellen Zweig zusammenführen.

git merge [alias]/[branch]

Den entfernten Zweig mit dem aktuellen Zweig zusammenführen.

Wenn ein Konflikt auftritt und manuell geändert werden muss, können Sie git mergetool verwenden. Der Konflikt wurde gelöst.

Git-Tag

Markieren Sie einen Punkt im Verlauf als Import.

wird auf einem Commit sein. Um ein dauerhaftes Lesezeichen zu erstellen, fügen Sie normalerweise ein Tag hinzu, nachdem Sie eine Release-Version veröffentlicht oder etwas versendet haben.

Zum Beispiel : git tag v1.0

git tag -a v1.0, -a Mit den Parametern können Sie einige Informationen hinzufügen, also ein mit Anmerkungen versehenes Tag erstellen.

Wenn Sie das ausführen git tag -ein Befehl, Git öffnet einen Editor, in dem Sie die Tag-Informationen eingeben können.

Wir können commit SHA verwenden, um einen vergangenen Commit zu markieren:

git tag -a v0.9 XXXX

Funktioniert beim Pushen nicht. Wenn Sie Tags einschließen möchten, können Sie beim Pushen den Parameter --tags hinzufügen.

Beim Abrufen , Tags, die über Branch HEAD erreichbar sind, werden automatisch abgerufen, Tags, die nicht über Branch Heads erreichbar sind, werden übersprungen. Wenn Sie sicherstellen möchten, dass alle Tags enthalten sind, müssen Sie die Option --tags hinzufügen

git remote

Remote-Repository-Aliase auflisten, hinzufügen und löschen. Weil Sie nicht jedes Mal die vollständige URL verwenden müssen Gleichzeitig erstellt Git einen Alias ​​für jede Remote-Repo-URL und verwendet dann Git Remote, um diese Liste zu verwalten.

Git Remote: Remote-Aliase auflisten.

Wenn Sie ein Projekt klonen, wird Git dies automatisch tun Fügen Sie die Original-URL hinzu, und der Alias ​​heißt: origin.

git remote - v: Sie können die tatsächliche URL sehen, die jedem Alias ​​entspricht.

git remote add [alias] [url] : Ein neues Remote-Repo hinzufügen.

git remote rm [alias]: Einen vorhandenen Remote-Alias ​​löschen.

git remote rename [old-alias] [new-alias]: Umbenennen.

git remote set-url [alias] [url]: URL aktualisieren OK Fügen Sie die Parameter -push und fetch hinzu, um unterschiedliche Zugriffsadressen für denselben Alias ​​festzulegen 🎜>git fetch

neue Zweige und Daten aus einem Remote-Repository herunterladen.

Sie können git fetch [Alias] verwenden, um ein bestimmtes Remote-Repository abzurufen, oder Sie können git fetch verwenden --all, um alle Repos abzurufen

fetch ruft alle ab, die Sie nicht lokal haben Daten, alle entfernten Zweige können Remote-Zweige genannt werden, sie sind die gleichen wie lokale Zweige (Sie können Diff, Log sehen usw. und können auch mit anderen Zweigen zusammengeführt werden), aber Git erlaubt Ihnen nicht, sie auszuchecken

git pull

Von einem Remote-Repo abrufen und versuchen, in den aktuellen Zweig zusammenzuführen.

pull == fetch + merge FETCH_HEAD

git pull führt zuerst git fetch aus, führt dann git merge aus und führt den Kopf zusammen des abgerufenen Zweigs in den aktuellen Zweig.  

Wenn Sie den Parameter --rebase verwenden, wird Git Rebase ausgeführt, um den ursprünglichen Git Merge zu ersetzen.

git rebase

--rebase generiert keine zusammengeführten Übermittlungen. Alle lokalen Übermittlungen werden vorübergehend als Patches gespeichert und im Verzeichnis „.git/rebase“ abgelegt. Anschließend wird der aktuelle Zweig auf den neuesten Zweig aktualisiert

Während des Rebase-Vorgangs kann es zu Konflikten kommen. Nachdem Sie den Konflikt gelöst haben, können Sie den Inhalt nicht aktualisieren Um Commit auszuführen, müssen Sie nur Folgendes tun:

git rebase --continue führt weiterhin die verbleibenden Patches durch.

git rebase --abort beendet Rebase und der aktuelle Zweig kehrt zum vorherigen Rebase-Status zurück .

git push

Übertragen Sie Ihre neuen Zweige und Daten in ein Remote-Repository.

git push [ alias] [ branch]

führt den aktuellen Zweig mit dem Zweig [branch] unter Alias ​​zusammen. Wenn der Zweig bereits vorhanden ist, wird er aktualisiert > Wenn mehrere Personen Code an dasselbe Remote-Repository übertragen, führt Git zunächst „git log“ für den Zweig aus, den Sie übertragen möchten, um zu überprüfen, ob der aktuelle Tipp des Zweigs auf dem Server in seinem Verlauf zu sehen ist Gehen Sie im lokalen Verlauf zum Tipp des Servers und geben Sie an, dass der lokale Code nicht der neueste ist, und lassen Sie ihn zuerst abrufen und zusammenführen. Dadurch wird sichergestellt, dass alle Änderungen berücksichtigt werden >

git reflog

Git reflog ist ein Befehl zum Verwalten von Reflog. Reflog ist ein Mechanismus, der von Git zum Aufzeichnen von Referenzänderungen verwendet wird, beispielsweise zum Aufzeichnen von Zweigänderungen oder Änderungen in HEAD-Referenzen.

Wenn git reflog keine Referenz angibt, wird HEADs Reflog standardmäßig aufgelistet.

HEAD@{0} stellt den aktuellen Wert von HEAD dar und HEAD@{ 3} stellt den Wert von HEAD vor drei Änderungen dar.

Git zeichnet die Änderungen in der Reflog-Datei auf, die HEAD entspricht. Die Reflog-Dateien der Zweige werden in .git/logs/HEAD abgelegt. git/logs/ Im Unterverzeichnis unter dem Refs-Verzeichnis

Spezielle Symbole:

^ stellt die übergeordnete Einreichung dar . Wenn eine Übermittlung mehrere übergeordnete Übermittlungen aufweist, können Sie die Anzahl der übergeordneten Übermittlungen wie folgt angeben: ^ entspricht ^1.

~ ^ .

git init

Erstellen Sie lokal ein neues Repo, geben Sie ein Projektverzeichnis ein, führen Sie git init aus, ein Repo wird initialisiert und im aktuellen Ordner git erstellt Ordner.

git clone

Holen Sie sich das Remote-Git-Repo, das einer URL entspricht, und erstellen Sie eine lokale Kopie.

Der Das allgemeine Format ist „git clone [url]“.

Das geklonte Repo wird nach dem letzten Schrägstrich in der URL benannt. Wenn Sie einen bestimmten Namen angeben möchten, können Sie „git clone [url] newname“ verwenden angegeben.

git status

Fragen Sie den Status des Repos ab.

git status -s: -s bedeutet kurz , die Ausgabemarke von -s hat zwei Spalten, die erste Spalte ist für den Staging-Bereich und die zweite Spalte ist für das Arbeitsverzeichnis

git log

Commit-Verlauf eines Zweigs anzeigen.

git log --oneline --number: Jedes Protokoll zeigt nur eine Zeile mit der Nummer an.

git log --oneline --graph: kann den Zweigzusammenführungsverlauf grafisch darstellen

git log branchname kann das Protokoll eines bestimmten Zweigs anzeigen

git log --oneline branch1 ^branch2, Sie können den Zweig anzeigen 1, aber nicht in Zweig 2. ^ bedeutet, diesen Zweig auszuschließen (möglicherweise müssen Sie unter Windows Anführungszeichen zu ^branch2 hinzufügen).

git log --decorate zeigt die Tag-Informationen an 🎜 > git log --author=[Autorenname] kann den Einreichungsverlauf des Autors angeben.

git log --since --before --until --after filtert Protokolle basierend auf der Einreichungszeit.

--no-merges kann Merge-Commits ausschließen

git log --grep Protokolle basierend auf Commit-Informationen filtern: git log --grep=keywords

Standardmäßig git log - - grep --author ist eine ODER-Beziehung, das heißt, wenn eine davon erfüllt ist, wird sie zurückgegeben. Wenn Sie möchten, dass es sich um eine UND-Beziehung handelt, können Sie die Option --all-match hinzufügen > git log -S: Nach eingeführtem Diff filtern.

Zum Beispiel: git log -SmethodName (beachten Sie, dass zwischen S und den folgenden Wörtern kein Gleichheitszeichen steht).

git log -p : Bei jedem Commit eingeführter Patch.

Jede Übermittlung ist ein Snapshot, der den Unterschied jeder Übermittlung berechnet und Ihnen als Patch anzeigt

Eine andere Methode ist git show [SHA ].

git log --stat: Zeigt Diffstat der bei jedem Commit eingeführten Änderungen an.

Wird auch verwendet, um relative Informationen zu Änderungen anzuzeigen. --stat ist einfacher auszugeben als -p Einige.

 

git add

     在提交之前,Git有一个暂存区(staging area),可以放入新添加的文件或者加入新的改动. commit时提交的改动是上一次加入到staging area中的改动,而不是我们disk上的改动.

     git add .

     会递归地添加当前工作目录中的所有文件.

 

git diff

     不加参数的git diff:

     show diff of unstaged changes.

     此命令比较的是工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有暂存起来的变化内容.

 

     若要看已经暂存起来的文件和上次提交时的快照之间的差异,可以用:

     git diff --cached 命令.

     show diff of staged changes.

     (Git 1.6.1 及更高版本还允许使用 git diff --staged,效果是相同的).

 

     git diff HEAD

     show diff of all staged or unstated changes.

     也即比较woking directory和上次提交之间所有的改动.

 

     如果想看自从某个版本之后都改动了什么,可以用:

     git diff [version tag]

     跟log命令一样,diff也可以加上--stat参数来简化输出.

 

     git diff [branchA] [branchB]可以用来比较两个分支.

     它实际上会返回一个由A到B的patch,不是我们想要的结果.

     一般我们想要的结果是两个分支分开以后各自的改动都是什么,是由命令:

     git diff [branchA]…[branchB]给出的.

     实际上它是:git diff $(git merge-base [branchA] [branchB]) [branchB]的结果.

 

 

git commit

Senden Sie die hinzugefügten Änderungen.

git commit -m „die Commit-Nachricht“

git commit -a fügt zuerst die Änderungen zu allen verfolgten Dateien hinzu und sendet dann ( (ein bisschen wie eine SVN-Einreichung, es ist nicht nötig, sie zuerst vorübergehend zu speichern). Für Dateien ohne Titel müssen Sie immer noch git commit --amend hinzufügen, um die gleiche Elterndatei wie die aktuelle einzureichen Übermittlungsknoten wird verwendet. Der Knoten führt eine neue Übermittlung durch und die alte Übermittlung wird abgebrochen.

git reset

Änderungen und Festschreibungen rückgängig machen . Das Schlüsselwort HEAD bezieht sich hier auf den neuesten Commit am Ende des aktuellen Zweigs. Das heißt, die neueste Version im Zweig im Repository

git reset HEAD: unstage files from indexieren und Zeiger auf HEAD zurücksetzen

Dieser Befehl wird verwendet, um versehentlich hinzugefügte Dateien aus dem bereitgestellten Zustand zu entfernen. Er kann einzeln auf eine bestimmte Datei angewendet werden: git reset HEAD - - Dateiname, dieser - - kann auch weggelassen werden.

git reset --soft

HEAD in eine bestimmte Commit-Referenz verschieben, Index und Staging bleiben unberührt.

git reset --hard

Dateien aus dem Staging entfernen UND alle Änderungen im Arbeitsverzeichnis seit dem letzten Commit rückgängig machen.

Verwenden Sie git reset --hard HEAD zum Zurücksetzen, d. h. alle bereitgestellten Änderungen und Änderungen im Arbeitsverzeichnis nach dem letzten Commit verschwinden und werden gelöscht auf den Zustand des letzten Commits zurückgesetzt.

HEAD kann hier als SHA-1 eines beliebigen Commits geschrieben werden.

Git-Reset ohne Soft- und Hard-Parameter verwendet tatsächlich den gemischten Standardparameter.

Zusammenfassung:

git reset --mixed id ändert den HEAD von git (das heißt, der Commit-Datensatz hat sich geändert), aber die Datei hat sich nicht geändert (das heißt, Der Arbeitsbaum hat sich nicht geändert.) ) Brechen Sie den Inhalt von „commit“ und „add“ ab der Inhalt von commit.

git reset --hard id Ändert den Git-HEAD und die Dateien

Sortiert nach Änderungsbereich wie folgt:

soft (commit) < ; gemischt (Commit + Add) < Hard (Commit + Add + Local Working)

Git Revert

Einfach das Commit umkehren Der Fehler Übergeben Sie einfach den Commit-Namen (Referenz) als Parameter an den Befehl

git revert HEAD: Machen Sie das letzte Commit rückgängig

git revert erstellt ein neues Reverse-Commit Git soll es nicht über den Parameter -n senden.

git rm

git rm file: Dateien aus dem Staging-Bereich entfernen Gleichzeitig wird auch das Arbeitsverzeichnis entfernt.

git rm --cached: Entfernt Dateien aus dem Staging-Bereich, belässt sie jedoch im Arbeitsverzeichnis Äquivalent zu git reset HEAD, löscht den Cache-Bereich, lässt aber den Arbeitsverzeichnisbaum unverändert.

Der übliche Parameter ist git clean -df:

-d bedeutet entfernen Gleichzeitig bedeutet -f „force“, da „requireForce=true“ die Ausführung verweigert, wenn „-f“ nicht hinzugefügt wird git mv

git rm - - zwischengespeichert orig; git add new

git stash

Schieben Sie die aktuellen Änderungen in einen Stapel.

git stash wird alle Änderungen im aktuellen Verzeichnis und Index (jedoch nicht einschließlich nicht verfolgter Dateien) in einen Stapel verschieben und Sie erhalten dann eine Bereinigung Arbeitszustand, d. h. bei der letzten Einreichung.

git stash list zeigt die Liste dieses Stapels an

git stash apply: Entfernen Sie das vorherige Element im Stash (stash@{ 0}) und wenden Sie es auf das aktuelle Arbeitsverzeichnis an.

Sie können auch andere Projekte angeben, z. B. git stash apply stash@{1}.

Wenn Sie das Projekt löschen möchten stash Während Sie es anwenden, können Sie git stash pop

Elemente im Stash löschen:

git stash drop: Löschen Sie das vorherige, oder Sie können Parameter zum Löschen angeben ein bestimmtes Element.

git stash clear: Alle Elemente löschen.

git branch

git branch kann dazu verwendet werden Zweige auflisten, Zweige erstellen und Zweige löschen.

git branch -v kann jeden sehen Das letzte Commit des Zweigs.

git branch: Listet alle lokalen Zweige auf, der aktuelle Zweig wird mit markiert ein Sternchen.

git branch (branchname): Erstellen Sie einen neuen Branch (wenn Sie auf diese Weise einen Branch erstellen, basiert der Branch auf Ihrem letzten Commit

).

git branch -d (Branchname): Einen Zweig löschen.

Remote Branch löschen:

git push (remote-name):(branch-name): Einen Remote Branch löschen.

Dies liegt daran, dass die vollständige Befehlsform wie folgt lautet:

git push remote-name local-branch:remote-branch

Und der Teil „local-branch“ ist hier leer bedeutet, dass remote-branch

git checkout

git checkout (branchname)

Zu einem Branch wechseln.

git checkout -b (branchname): Erstellen und wechseln zu einem neuen Branch.

Dieser Befehl ist das Ergebnis der Kombination von git branch newbranch und git checkout newbranch.

Checkout hat eine weitere Funktion: Ersetzen lokaler Änderungen:

git checkout - -

Dieser Befehl ersetzt die Dateien in Ihrem Arbeitsverzeichnis durch die neuesten Inhalte in HEAD. Änderungen und neue Dateien, die dem Staging-Bereich hinzugefügt wurden, sind davon nicht betroffen

Hinweis: git checkout filename löscht alle Änderungen in der Datei, die nicht bereitgestellt und festgeschrieben wurden.

git merge

Einen Zweig mit dem aktuellen Zweig zusammenführen.

git merge [alias]/[branch]

Den entfernten Zweig mit dem aktuellen Zweig zusammenführen.

Wenn ein Konflikt auftritt und manuell geändert werden muss, können Sie git mergetool verwenden. Der Konflikt wurde gelöst.

Git-Tag

Markieren Sie einen Punkt im Verlauf als Import.

wird auf einem Commit sein. Um ein dauerhaftes Lesezeichen zu erstellen, fügen Sie normalerweise ein Tag hinzu, nachdem Sie eine Release-Version veröffentlicht oder etwas versendet haben.

Zum Beispiel : git tag v1.0

git tag -a v1.0, -a Mit den Parametern können Sie einige Informationen hinzufügen, also ein mit Anmerkungen versehenes Tag erstellen.

Wenn Sie das ausführen git tag -ein Befehl, Git öffnet einen Editor, in dem Sie die Tag-Informationen eingeben können.

Wir können commit SHA verwenden, um einen vergangenen Commit zu markieren:

git tag -a v0.9 XXXX

Funktioniert beim Pushen nicht. Wenn Sie Tags einschließen möchten, können Sie beim Pushen den Parameter --tags hinzufügen.

Beim Abrufen , Tags, die über Branch HEAD erreichbar sind, werden automatisch abgerufen, Tags, die nicht über Branch Heads erreichbar sind, werden übersprungen. Wenn Sie sicherstellen möchten, dass alle Tags enthalten sind, müssen Sie die Option --tags hinzufügen

git remote

Remote-Repository-Aliase auflisten, hinzufügen und löschen. Weil Sie nicht jedes Mal die vollständige URL verwenden müssen Gleichzeitig erstellt Git einen Alias ​​für jede Remote-Repo-URL und verwendet dann Git Remote, um diese Liste zu verwalten.

Git Remote: Remote-Aliase auflisten.

Wenn Sie ein Projekt klonen, wird Git dies automatisch tun Fügen Sie die Original-URL hinzu, und der Alias ​​heißt: origin.

git remote - v: Sie können die tatsächliche URL sehen, die jedem Alias ​​entspricht.

git remote add [alias] [url] : Ein neues Remote-Repo hinzufügen.

git remote rm [alias]: Einen vorhandenen Remote-Alias ​​löschen.

git remote rename [old-alias] [new-alias]: Umbenennen.

git remote set-url [alias] [url]: URL aktualisieren OK Fügen Sie die Parameter -push und fetch hinzu, um unterschiedliche Zugriffsadressen für denselben Alias ​​festzulegen 🎜>git fetch

neue Zweige und Daten aus einem Remote-Repository herunterladen.

Sie können git fetch [Alias] verwenden, um ein bestimmtes Remote-Repository abzurufen, oder Sie können git fetch verwenden --all, um alle Repos abzurufen

fetch ruft alle ab, die Sie nicht lokal haben Daten, alle entfernten Zweige können Remote-Zweige genannt werden, sie sind die gleichen wie lokale Zweige (Sie können Diff, Log sehen usw. und können auch mit anderen Zweigen zusammengeführt werden), aber Git erlaubt Ihnen nicht, sie auszuchecken

git pull

Von einem Remote-Repo abrufen und versuchen, in den aktuellen Zweig zusammenzuführen.

pull == fetch + merge FETCH_HEAD

git pull führt zuerst git fetch aus, führt dann git merge aus und führt den Kopf zusammen des abgerufenen Zweigs in den aktuellen Zweig.  

Wenn Sie den Parameter --rebase verwenden, wird Git Rebase ausgeführt, um den ursprünglichen Git Merge zu ersetzen.

git rebase

     --rebase不会产生合并的提交,它会将本地的所有提交临时保存为补丁(patch),放在”.git/rebase”目录中,然后将当前分支更新到最新的分支尖端,最后把保存的补丁应用到分支上.

     rebase的过程中,也许会出现冲突,Git会停止rebase并让你解决冲突,在解决完冲突之后,用git add去更新这些内容,然后无需执行commit,只需要:

     git rebase --continue就会继续打余下的补丁.

     git rebase --abort将会终止rebase,当前分支将会回到rebase之前的状态.

 

git push

     push your new branches and data to a remote repository.

     git push [alias] [branch]

     将会把当前分支merge到alias上的[branch]分支.如果分支已经存在,将会更新,如果不存在,将会添加这个分支.

     如果有多个人向同一个remote repo push代码, Git会首先在你试图push的分支上运行git log,检查它的历史中是否能看到server上的branch现在的tip,如果本地历史中不能看到server的tip,说明本地的代码不是最新的,Git会拒绝你的push,让你先fetch,merge,之后再push,这样就保证了所有人的改动都会被考虑进来.

 

git reflog

     git reflog是对reflog进行管理的命令,reflog是git用来记录引用变化的一种机制,比如记录分支的变化或者是HEAD引用的变化.

     当git reflog不指定引用的时候,默认列出HEAD的reflog.

     HEAD@{0}代表HEAD当前的值,HEAD@{3}代表HEAD在3次变化之前的值.

     git会将变化记录到HEAD对应的reflog文件中,其路径为.git/logs/HEAD, 分支的reflog文件都放在.git/logs/refs目录下的子目录中.

 

 

特殊符号:

     ^代表父提交,当一个提交有多个父提交时,可以通过在^后面跟上一个数字,表示第几个父提交: ^相当于^1.

     ~相当于连续的个^.

更多Git相关技术文章,请访问Git使用教程栏目!

Das obige ist der detaillierte Inhalt vonZusammenfassung gängiger Git-Befehle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:So verwenden Sie GithubNächster Artikel:So verwenden Sie Github