Grundlagen
Diese Anleitung ist für einen schnellen, verständlichen Einstieg gedacht. Es wurde bewusst an Fachbegriffen und technischen Details einzelner Befehle gespart. Es sind nicht alle Befehle und Möglichkeiten hier dokumentiert.
Eine vollständige, umfangreiche Dokumentation findet man unter: https://git-scm.com/doc
Git?
Git ist eine Software zur Verwaltung und Versionierung von Dateien (= Repository Software). Alle Änderungen, die an den Dateien gemacht werden, werden von Git im Hauptverzeichnis gespeichert. Das Hauptverzeichnis ist für alle Mitarbeiter zugänglich.
Auf jedem Arbeitsplatz wird eine Arbeitskopie erstellt. Diese Kopie ist nur lokal zugänglich. Der Mitarbeiter verändert seine Arbeitskopie, indem er Dateien hinzufügt oder verändert. Sobald er mit seinen Änderungen fertig ist, schickt er diese an das für alle zugängliche Hauptverzeichnis. Andere Mitarbeiter können nun seine Änderungen aus dem Hauptverzeichnis abrufen.
1. Git lokal einrichten
- Git herunterladen https://git-scm.com/downloads und installieren
- Einmalig Userdaten setzen:
> git config –global user.name “John Doe”
> git config –global user.emailDiese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein. - Optional: Notepad++ als Editor (Notepad++ muss installiert sein)
> git config –global core.editor “'C:\Program Files (x86)\Notepad++\notepad++.exe' -multiInst -nosession”
2. Arbeitskopie holen
Git Server im Internet
In Konsole in ein beliebiges Verzeichnis wechseln und folgenden Befehl ausführen:
> git clone https://www.deine-git-url.de/verzeichnis.git
Jetzt kann mit Git gearbeitet werden. Wie das geht, steht in den nachfolgenden Schritten.
Windows + Git Server im lokalen Netzwerk
Wir nehmen an, unser Git Pfad lautet "\\Foobar\Git\beispiel.git". Wir benötigen unter Windows ein Netzlaufwerk. Das Ende vom Pfad, hier "beispiel.git", wird weggelassen. Der Pfad für das Netzlaufwerk lautet also: "\\Foobar\Git\"
Nach dem Anlegen des Netzlaufwerks die Konsole öffnen und in das Verzeichnis wechseln, in dem die Kopie gespeichert werden soll (z.B. "C:\MeineArbeitskopien")
Jetzt holen wir die Daten aus dem Hauptverzeichnis. Der Befehl dazu:
> git clone "Z:\beispiel.git"
Nun befinden sich in die Daten von dem Hauptverzeichnis in dem Ordner "beispiel" (bzw. das Ende des Pfades ohne ".git") Anschließend in das neue Verzeichnis wechseln, hier "beispiel", dazu Folgendes eingeben:
> cd beispiel
Jetzt kann mit Git gearbeitet werden. Wie das geht, steht in den nachfolgenden Schritten.
3. Änderungen in Arbeitskopie speichern
Die Arbeitskopie muss über Änderungen informiert werden. Änderungen sind z.B. neue oder bearbeitete Dateien. Der nachfolgende Befehl speichert alle Änderungen, die der Arbeitskopie nicht bekannt sind:
> git commit -a -m "Sinnvoller Kommentar, z.B. neue Datei hinzugefügt."
Nun kennt die Arbeitskopie den aktuellen Zustand der Dateien.
4. Änderungen an Hauptverzeichnis schicken
Damit die Änderungen für andere zugänglich sind, müssen sie an das Hauptverzeichnis geschickt werden.
> git push origin master
Das Hauptverzeichnis ist nun über alle gespeicherten Änderungen informiert.
5. Änderungen von Hauptverzeichnis abrufen
Änderungen in der Hauptverzeichnis werden nicht automatisch in die Arbeitskopie übertragen.
Daher sollte man regelmäßig seine Arbeitskopie manuell aktualisieren. Zum Aktualisieren muss folgender Befehl ausgeführt werden:
> git pull
Nun sind die Daten der Arbeitskopie identisch mit den Dateien des Hauptverzeichnisses.
6. Löschen einer Datei
> git rm [Datei]
7. Verschieben
ACHTUNG: Beim Verschieben wird die Versionshistorie der Datei unterbrochen!
> git mv [Datei] [Zielverzeichnis]
Dies entspricht:
1. Betriebssystem Befehle:
> mkdir [Zielverzeichnis]
> mv [Datei] [Zielverzeichnis]
2. Git Befehle:
> git add [Zielverzeichnis]/[Datei]
> git rm [Datei]
Quelle: https://githowto.com/moving_files
9. Datei/Ordner aus Tracking entfernen
git rm --cached <Dateiname>
oder
git rm -r --cached <Ordner>
Es wird lokal nichts gelöscht. Die Dateien erscheinen nun für Git als neu. Daher nun per Gitignore-Datei ausblenden.
Fortgeschrittene Bedienung
ACHTUNG: Dieser Teil ist nur für erfahrene Benutzer gedacht!!!
Arbeitskopie zurücksetzen (auf Stand des Hauptverzeichnisses):
Dabei gehen alle Änderungen verloren, die nicht zum Hauptverzeichnis gesendet wurden.
Vollständiges Verzeichnis:
> git reset --hard
Nur bestimmtes Verzeichnis:
> git checkout -- [Zielverzeichnis]
Git Remote Pfad ändern:
> git remote set-url origin "Neuen Pfad hier eingeben"
Ignorieren von Dateien
Git erlaubt das Ignorieren von Dateien und Verzeichnissen (z.B. "build"-Verzeichnis). Über die ".gitignore"-Datei können Verzeichnisse und Dateien ausgeschlossen werden. Eine umfangreiche Sammlung von Git Ignore-Dateien für verschiedene Anwendungsfälle ist unter:
https://github.com/github/gitignore
Unter Widnows ist es nicht möglich, eine Datei mit "." am Anfang direkt zu erstellen. Workaround:
- Datei gitignore.txt erstellen
- Regeln in Datei schreiben
- SHIFT + Rechtsklick auf entsprechenden Ordner und auf "Eingabeaufforderung hier öffnen" klicken
- Datei per Kommandozeile umbenennen --> ren gitignore.txt .gitignore
Falls Git die zu ignorierten Dateien trotzdem beobachtet:
- WICHTIG: Alle aktuellen Änderungen speichern, da sie sonst verloren gehen!
- Git Konsole im Hauptverzeichnis aufrufen und folgende Befehle aufrufen:
git rm -r --cached .
git add .
git commit -m "fixed untracked files"
Einrichtung von Git für ein lokales Netzwerk
In diesem Bespiel ist der Server im Netzwerk als "Foobar" erreichbar und unser Projekt soll "beispiel" heißen.
Wir beginnen auf dem Server Rechner.
- Initialisierung des Git Hauptverzeichnisses<br>
Unter Windows den Ordner "Git" erstellen. Ein Konsolenfenster öffnen und dort hin wechseln
> git init --bare beispiel.git - Das Verzeichnis "Git" in Windows freigeben (Erweiterte Freigabe + Schreibrechte für "Jeder" setzen)
Nun ist der Pfad z.B. unter "\\Foobar\Git\" erreichbar
Die nachfolgenden Schritte erfolgen durch einen Client Rechner.
- Den Pfad "\\Foobar\Git\" als Netzlaufwerk einrichten, z.B. mit Buchstaben "Z"
Dieser Schritt ist wichtig, damit der Zugriff reibungslos funktioniert. - Ein Verzeichnis erstellen, z.B. "beispiel", und mit der Konsole dorthin wechseln (cd "C:\irgendein\pfad\beispiel")
Anschließend folgenden Befehl ausführen:
> git init - Wichtiger Schritt: Neue Datei in dem gerade erstellten Verzeichnis anlegen, z.B. "Willkommen.txt".
- Folgende Befehle nacheinander ausführen:
> git add *
> git commit -m "Initial commit"
> git remote add origin "Z:\beispiel.git"
> git push origin master
Die Initialisierung ist nun abgeschlossen.
Weitere Clients können sich nun eine Arbeitskopie von dem Git Hauptverzeichnis holen.
Dateien permanent aus Git-Historie löschen
https://dalibornasevic.com/posts/2-permanently-remove-files-and-folders-from-a-git-repository