Erster Commit

Wenn wir jetzt den aktuellen Projektzustand in der Git Repository einchecken wollen, so benötigen wir den Befehl git commit. Der lokale Ordner .git in unserem Projektordner stellt das Git-Repo dar.

Achtung

Sollten Sie beim Committen den Parameter -m für die Commit-Message vergessen, so landen Sie im VI und müssen mittels i in den Einfügemodus zum Schreiben. Danach mit ESC und ZZ die Bearbeitung beenden.

Besser: mit Parameter -m arbeiten oder anderen Standard-Editor konfigurieren.

Best Practise für Commits

  • früh und häufig commiten (Änderungen einchecken)

  • eine logische/inhaltliche Änderung entspricht einem Commit

  • Commits lassen sich später zusammenfassen / aufräumen (siehe rebase)

Und los geht es:

$ git commit -m 'Initial commit; First Commit to .git'
[master (root-commit) 636908f] Initial commit; First Commit to .git
2 files changed, 4 insertions(+)
create mode 100644 testdatei.txt
create mode 100644 testdatei2.txt

Man erkennt den aktuellen Branch mit Standardname master und die Quittung root-commit - also die Wurzel für alle weiteren Arbeiten/Änderungen am Git-Repo.

Der Commit ist mit einer eindeutigen (hier abgekürzten) SHA-1-Summe gekennzeichnet: 636908f

Der Commit kann mit git show dargestellt werden:

$ git show
commit 636908f2b795b68c4c99f978239be5e274bfea05 (HEAD -> master)
Author: Joe Brandes <joe.trainer@example.com>
Date:   Thu Jul 11 14:04:11 2019 +0200

Initial commit; First Commit to .git

diff --git a/testdatei.txt b/testdatei.txt
new file mode 100644
index 0000000..2fddc57
--- /dev/null
+++ b/testdatei.txt
@@ -0,0 +1,3 @@
+Zeile 1
+Zeile 2
+
diff --git a/testdatei2.txt b/testdatei2.txt
new file mode 100644
index 0000000..a33806c
--- /dev/null
+++ b/testdatei2.txt
@@ -0,0 +1 @@
+Text in Datei 2

Spätestens jetzt ist deutlich zu erkennen: ein Commit ist hier eine Zustandsbeschreibung von mehreren Dateien. Für jede Datei ist natürlich der Diff (die Änderung) beschrieben.

Eine Analyse für das Git-Projekt zeigt jetzt:

$ git status
On branch master
nothing to commit, working tree clean

Alle Dateien besitzen jetzt (wieder) den Status Unmodified, was eben mit keinem Kürzel / keiner Anmerkung bedacht wird.

Tipp

Man kann das git add ... auch mit git commit -a -m '...' zu einem Schritt vereinen. Allerdings werden dann wirklich alle getrackten, veränderten Dateien in einem Schritt commited. Damit könnte man auch ungewünschte Änderungen/Dateien ins Git Repo veröffentlichen.

Wir werden erst einmal immer einzeln den Git Status beobachten und sauber mit git add gefolgt von git commit arbeiten.