Git Tutorial - Git Workflow
Wie wir gerade gelernt haben, ist das Hinzufügen einer Datei oder das Übertragen einer Datei im Grunde ein zweistufiger Prozess.
-
git add
Fügen Sie die Dateien zum Bereitstellungsbereich hinzu. Wie der folgende Befehl,
$ git add test1.txt
file1.txt
wird aus Ihrer Arbeitskopie in den Staging-Bereich hinzugefügt und ist bereit für die Übergabe an das Repository. Wann immer wir eine Datei erstellen, befindet sie sich in unserer Arbeitskopie, auf dem lokalen Rechner und nach dem Befehlgit add
geht sie in den Staging-Bereich. -
git commit
Es nimmt alle Dateien aus Ihrem Bereitstellungsbereich, um sie in das Repository zu verschieben.
$ git commit -m "commit message"
Wir fügen normalerweise eine Nachricht hinzu, die beschreibt, was dieser Commit macht, wie z.B. was wir in den Dateien oder Projekten geändert haben, daher könnten wir in Zukunft die Log-Informationen dieses Commits erhalten.
git add
Nachdem Sie eine Datei geändert und gespeichert haben, unterscheidet sich diese Datei auf unserem Computer von der Datei in unserem Repository, da sie im Repository noch den gleichen Inhalt wie vor dieser Änderung hat. Wenn Sie git status
eingeben, können Sie sehen, dass Git weiß, dass Ihre Datei aktualisiert wurde.
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: test1.txt
no changes added to commit (use "git add" and/or "git commit -a")
Wie von Git vorgeschlagen, benutzen wir git add
, um die Dateien zu aktualisieren, die übertragen werden.
$ git add test1.txt
Nun können Sie diese aktualisierte Datei aus dem Staging-Bereich in das Repository übertragen.
Manchmal haben wir mehrere Dateien aktualisiert und natürlich könnten wir auf diese Weise Dateien hinzufügen,
$ git add test1.txt test2.txt test3.txt
Aber es bereitet Ihnen große Kopfschmerzen, wenn Sie viele Dateien haben oder der Dateiname zu lang ist. Git hat einen Shortcut, um alle aktualisierten Dateien und die ungetrackten Dateien zum Staging-Bereich hinzuzufügen,
$ git add .
Hier bedeutet .
alle Dateien, die sich vom Repository unterscheiden.
git commit
Wir haben gezeigt, wie man git commit
benutzt, als wir andere Funktionen von Git eingeführt haben. Im Grunde genommen verschiebt git commit
den Staging-Bereich in das Repository, und es wird dringend empfohlen, die Commit-Nachricht hinzuzufügen, um zu beschreiben, was Sie für diesen speziellen Commit geändert haben. Sie können alle Ihre Commit-Log-Informationen mit dem git log
-Befehl zurückbekommen.
Übergeben Sie direkt an das Repository
Bevor wir etwas übergeben, müssen wir Änderungen im Staging-Bereich hinzufügen. Dann können wir sie committen. Aber es gibt wirklich keinen Grund, sie zum Staging-Bereich hinzuzufügen. Erstens, weil wir wissen, dass diese Änderungen in unserem endgültigen Projekt, in unserem Repository oder auf dem Server für jeden aktualisiert werden sollen.
Was wir also tun könnten, ist zuerst den git status
zu überprüfen, damit wir wissen, was in der Arbeitskopie geändert wurde. Dann könnten wir direkt git commit
verwenden, bevor wir diese Änderungen überhaupt in den Staging-Bereich einfügen.
$ git commit -a -m "commit message here."
Was wir hier tun, ist, dass wir eine Abkürzung benutzen, anstatt sie zum Staging-Bereich hinzuzufügen. Aber das ist nur in bestimmten Situationen nützlich, immer wenn Sie diesen Befehl verwenden, müssen Sie vorsichtig sein, da er alles in Ihrer Arbeitskopie packt und direkt in das Repository schiebt.
Einen Commit ändern
Wir könnten zu einer Situation nach einem Commit gekommen sein, wir finden einen Tippfehler oder andere kleine Fehler im Code. Natürlich könnten Sie den Code überarbeiten und die Änderungen erneut in das Repository übertragen. Aber was wir tun könnten, ist, dass wir diesen letzten Commit neu schreiben, und der letzte Commit wird mit der neuen Änderung neu geschrieben.
Das Flag --amend
nach git commit
sagt Git, dass dieser Commit den vorherigen Commit ersetzt, der sich nicht mehr in Ihrem Arbeitszweig befindet.
$ git commit --amend -m "new information is updated"
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook