Git

Aus Micropython Referenz
Zur Navigation springen Zur Suche springen

Git Download

Von der Projektseite: https://git-scm.com/

Wie funktioniert Git?


Für die folgenden Beispiele habe ich die Git-Bash verwendet:

Ein lokales Repository anlegen

Mit der Git-Bash in das gewünschte Verzeichnis gehen bzw. dort das geünschte Verzeichnis anlegen und dort hinein wechseln. Dann dieses Verzeichnis zu einem Git-Verzeichnis machen:

kpsto@Alice MINGW64 /c/users/peter/Documents
$ mkdir git_tests

kpsto@Alice MINGW64 /c/users/peter/Documents
$ cd git_tests/

kpsto@Alice MINGW64 /c/users/peter/Documents/git_tests
$ git init
Initialized empty Git repository in C:/Users/peter/Documents/git_tests/.git/

kpsto@Alice MINGW64 /c/users/peter/Documents/git_tests (master)
$

Git Konfigurieren

Vor der Verwendung muss das Verzeichnis konfiguriert werden:

kpsto@Alice MINGW64 /c/users/peter/Documents/git_tests (master)
$ git config --global user.name "Peter Stoeck"

kpsto@Alice MINGW64 /c/users/peter/Documents/git_tests (master)
$ git config --global user.email stoeck_kp@web.de

kpsto@Alice MINGW64 /c/users/peter/Documents/git_tests (master)
$

Für die weiteren Schritte habe ich einige Test-Dateien angelegt:

kpsto@Alice MINGW64 /c/users/peter/Documents/git_tests (master)
$ touch test_001.txt

kpsto@Alice MINGW64 /c/users/peter/Documents/git_tests (master)
$ touch test_002.txt

kpsto@Alice MINGW64 /c/users/peter/Documents/git_tests (master)
$ echo "Hallo Git" > test_003.txt

kpsto@Alice MINGW64 /c/users/peter/Documents/git_tests (master)
$ dir
test_001.txt  test_002.txt  test_003.txt

kpsto@Alice MINGW64 /c/users/peter/Documents/git_tests (master)
$

Dateien in Git aufnehmen: Commit

Die Aufnahme von Dateien oder Änderungen in das Repository erfolgt in zwei Schritten.

Zuerst schauen wir uns mal den Status an:

kpsto@Alice MINGW64 /c/users/peter/Documents/git_tests (master)
$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        test_001.txt
        test_002.txt
        test_003.txt

nothing added to commit but untracked files present (use "git add" to track)

kpsto@Alice MINGW64 /c/users/peter/Documents/git_tests (master)
$

Dateien im Stage bereitstellen

Zuerst müssen die Dateien im Stage bereitgestellt werden:

kpsto@Alice MINGW64 /c/users/peter/Documents/git_tests (master)
$ git add test_001.txt

kpsto@Alice MINGW64 /c/users/peter/Documents/git_tests (master)
$ git add test_002.txt test_003.txt
warning: in the working copy of 'test_003.txt', LF will be replaced by CRLF the
next time Git touches it

kpsto@Alice MINGW64 /c/users/peter/Documents/git_tests (master)
$

Mehrere Dateien können mit einem ADD in den Stagebereich geladen werden. Zur Trennung dient ein Leerzeichen.

Die Statusmeldung sieht jetzt so aus:

kpsto@Alice MINGW64 /c/users/peter/Documents/git_tests (master)
$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   test_001.txt
        new file:   test_002.txt
        new file:   test_003.txt


kpsto@Alice MINGW64 /c/users/peter/Documents/git_tests (master)
$

Git weist darauf hin, daß mit git rm --cached <file> Dateien wieder aus dem Stage-Bereich entfernt werden können.

Dateien ins Repository aufnehmen

Die im Stage vorhandenen Dateien können nun ins Repository aufgenommen werden:

kpsto@Alice MINGW64 /c/users/peter/Documents/git_tests (master)
$ git commit -m "Erste Dateien ins Repository übertragen."
[master (root-commit) c4186b4] Erste Dateien ins Repository übertragen.
 3 files changed, 1 insertion(+)
 create mode 100644 test_001.txt
 create mode 100644 test_002.txt
 create mode 100644 test_003.txt

kpsto@Alice MINGW64 /c/users/peter/Documents/git_tests (master)
$

Es ist sinnvoll einen Kommentar zu diesem Commit zu schreiben, damit man später identifizieren kann was dieser beinhaltet.

Die Statusmeldung zeigt nun an, daß alles sauber ist:

kpsto@Alice MINGW64 /c/users/peter/Documents/git_tests (master)
$ git status
On branch master
nothing to commit, working tree clean

kpsto@Alice MINGW64 /c/users/peter/Documents/git_tests (master)
$

Ein entferntes Resository anlegen

Bei einem vorhandenen lokalen Repository

Ich lege das entfernte Repository auf meinem NAS an.

Da mein NAS als Netzlaufwerk gemountet ist wird er von der Git-Bash nicht erkannt, die in einem eigenen Filesystem läuft (Linux Emulation unter Windows - MINGW). Deshalb muss ich den UNC-Pfad verwenden.

kpsto@Alice MINGW64 /c
$ cd //Qnap/Public/GIT-Repos

kpsto@Alice MINGW64 //Qnap/Public/GIT-Repos
$

Nun kann ich das Verzeichnis am entfernten Ort anlegen und es zum aktuellen Verzeichnis machen:

kpsto@Alice MINGW64 //Qnap/Public/GIT-Repos
$ mkdir git_tests_001.git

kpsto@Alice MINGW64 //Qnap/Public/GIT-Repos
$ cd git_tests_001.git/

kpsto@Alice MINGW64 //Qnap/Public/GIT-Repos/git_tests_001.git
$

Nun kann aus dem lokalen Repository heraus dieses gecloned werden:

kpsto@Alice MINGW64 /c/users/peter/Documents/git_tests (master)
$ git clone --bare . //Qnap/Public/GIT-Repos/git_tests_001.git
Cloning into bare repository '//Qnap/Public/GIT-Repos/git_tests_001.git'...
done.

kpsto@Alice MINGW64 /c/users/peter/Documents/git_tests (master)
$

Nur ein entferntes Repository anlegen

Links:

https://levelup.gitconnected.com/good-commit-vs-your-commit-how-to-write-a-perfect-git-commit-message-6e96ab6357fa


Navigation

Zurück zur Hauptseite