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 Befehl git 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 "new information is updated"

**Achtung! ** Ändern Sie niemals einen Commit, der nicht der letzte Commit ist, da andere Teammitglieder oder andere Zweige die Version haben, die auf diesem Commit basiert. Nach dem Ändern verlieren sie ihren Bezugspunkt und es ist schwierig, sich davon zu erholen.