DCV 2022 03/Git
Durch das verwenden von Git in der Kommandozeile, wird die Funktionionsweise von Git erst richtig verstanden. Je länger man Git verwendet um so fundierter wird das Wissen darüber. Weiters soll dadurch auch Erfahrung in der Kommandozeile erworben werden. Diese ist wichtig für den Serverbetrieb (Gnu/Linux) und für automatisierte Prozesse wie z.B.: CI/CD, Scripting, etc..
Weiterführende Informationen oder um einfach einen Überblick über Git zu erhalten finden sich hier.
Git-bash installieren
Im folgenden wird git-bash installiert. Durch git-bash erhalten wir eine BourneAgainSHell, wie man Sie auf Gnu/Linux oder generell auf Unix ähnlichen System vorfindet.
- git-bash hier herunterladen und installieren
- Über einen Rechtsklick in einem beliebigen Ordner kann nun git-bash gestartet werden
Schlüsselpaar erstellen
Mittels eines Schlüsselpaares bestehend aus privatem und öffentlichen Schlüssel kann sich ein Client bei einem Git Repository authentifizieren sofern das ssh (Secure Shell) Protokoll verwendet wird.
- git-bash öffnen
ssh-keygen -t ed25519 -C "your_email@example.com" #Durch eigene Email ersetzen- Datei mit der Endung C:\Users\DCV\.ssh\id_ed25519.pub im Github Profile hinterlegen
Mergetool einrichten
Gibt es Konflikte zwischen dem lokalen und dem remote Stand, so kann es erforderlich sein, dass manuell Dateien gemerged (zusammengeführt) werden müssen. Dafür benötigt man ein Mergetool. Hierfür wird meld verwendet. Wird die graphische Git Oberfläche von IntelliJ verwendet, so wird das IntelliJ eigene Mergetool verwendet.
- meld hier herunterladen und installieren
- git-bash öffnen
vim ~/.gitconfig #Öffnet den Editor VIM- Mit i oder der einfügen Taste in den Insert Mode wechseln und folgenden Code hinzufügen
[diff] tool = meld [difftool] prompt = false [difftool "meld"] cmd = "c:/Program\\ Files\\ \\(x86\\)/Meld/Meld.exe" "$LOCAL" "$REMOTE" [merge] tool = meld [mergetool "meld"] keepTemporaries = false cmd = "c:/Program\\ Files\\ \\(x86\\)/Meld/Meld.exe" "$LOCAL" "$BASE" "$REMOTE" --output "$MERGED" [mergetool] keepBackup = false
- Esc drücken, :wq eingeben und mit Return bestätigen (w = write, q = quit)
Sollte der Pfad in Schritt 5, nicht dem installierten Pfad entsprechen, so muss dieser entsprechend angepasst werden.
Mit eigenem Branch arbeiten
//Neuen Branch erstellen
git checkout -b bernaswipbranch
//Arbeit wird getan
git add .
git commit -m "wip"
git add .
git commit -m "wip"
git add .
git commit -m "wip"
git push origin bernaswipbranch
//Commits mit s squashen
git rebase -i HEAD~3
git push origin bernaswipbranch -f
//Neue Änderungen vom Server holen
git fetch
//Änderungen
git rebase origin master
git checkout master
git merge bernaswipbranch
git push origin master
//Zurück in den Branch wechseln
git checkout bernaswipbranch