Git
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 $
Nur ein entferntes Repository anlegen
Links: