Was sind die Hauptunterschiede zwischen Git und SVN?
Wie wird ein Git-Repo erstellt?
git init
Initialisiert das aktuelle Verzeichnis als Git-Repository, auch wenn bereits Inhalt vorhanden ist.
git init –bare
Ein “bare” Repository besteht nur aus dem Inhalt des .git-Repositories - es exisitiert keine ausgecheckte “working copy” (GitLab hat intern z.B. nur “bare” Repositories) und es können keine Dateien bearbeitet werden
Woran erkenne ich, dass ein Verzeichnis ein Git-Repository ist?
.git-Ordner ist darin vorhanden
Wie clone ich ein Repository?
git clone <repo-url> [<target-folder>]</target-folder></repo-url>
Wo liegen die Konfigurationsdateien von Git und wie ist ihre Priorisierung?
Von höherer zur niedrigerer Priorität (local überschreibt user etc.)
Warum muss die Konfigurationsoptoins core.autocrlf unbedingt auf false stehen?
Dateien werden beim Checkout sonst mit CRLF-Endungen ausgecheckt - unabhängig davon, wie sie im Repo sind - und mit LF wieder eingecheckt. Das kann zu Problemen z.B. mit Shell-Skripten führen.
Generell: Option auf false setzen (git config –global core.autocrlf false) und darauf achten, dass der eingesetzte Editor korrekt eingestellt ist.
Wie ist das Kommando zum Hinzufügen einer Datei (staging)?
Wie ist das Kommando zum Commit?
Kommando, um Übersicht über das Repo zu bekommen (aktueller Branch, neue/geänderte Dateien)
git status
Unterschied zwischen git status und git log?
“git status” zeigt den aktuellen Stand des Repositories an (Dateien), “git log” zeigt die Commit-History an
Was macht das “revert”-Kommando?
Macht einen Commit rückgängig, indem die umgekehrten Änderungen auf den aktuellen Stand angewendet werden.
Behält die Commit History bei und erstellt einen neuen Commit.
Kommandos und Verwendung von git checkout?
Was macht git reset –hard?
Setzt das aktuelle Working Directory zurück auf den Stand von HEAD
Was ist HEAD?
Es gibt mehrere “head” (kleingeschrieben), die auf Commits zeigen, z.B. zeigt ein “branch head” auf den Commit, auf dem sich ein Branch befindet.
“HEAD” (großgeschrieben) zeigt auf den aktuell ausgecheckten commit.
“detached HEAD” bezeichnet den Zustand, bei dem ein beliebiger Commit statt eines “head” (kleingeschrieben) ausgecheckt ist, sprich ein Commit, auf den keine Reference (branch oder tag) zeigt.
Was ist der Sinn eines Branches?
Was sind die zwei merge-Kommandos und was ist der Unterschied zwischen ihnen?
Zwei Typen:
Fast forward:
- einer der beiden Branches (master und branch) wurde nicht verändert, d.h. dieser kann ohne neuen merge commit einfach auf den Stand des anderen Branches gesetzt werden
3-way merge:
Was ist der Sinn folgender vier Kommandos?
git remote
git fetch
- holt Commits von Remotes und speichert sie in “remote branches”, dort können sie betrachtet werden, bevor sie gemerged werden
git pull
- verhält sich wie “git fetch” gefolgt von “git merge”
git push
- sende commits vom lokalen zu einem remote repository