Beitrag vom: 25.11.2021 Eines der geilsten Features von Git. Gleichzeitig eines der am wenigsten benutzten Features. Folgende Situation: Ihr seid gerade an eurem Also wirklich auschecken und deep-dive in den Code... Ihr habt Jeder Ordner ist quasi ein eigenes Git Repository. Aber alle teilen sich die Git Metadaten. Statt also euren Stand zu verlassen und komplett zu wechseln, reicht ein Super simpel - wirklich :).feature/blubb_feature
dran und dann kommt ein MR vom Kollegen, wo ihr bitte ganz schnell hotfix/make_that_users_dont_die_immediately
reviewen sollt, damit das super flott live gehen kann. Leider ist der branch zu komplex um alles direkt im Gitlab zu machen.Klassisches Vorgehen
git stash
eurer Änderungengit checkout hotfix/...
um den Branch anzugucken und alles durch zu gehen.Viel besseres Vorgehen
git worktree
eingerichtet (ist nativ bei git dabei) und habt sowieso schon folgende Ordnerstruktur:project_name/
- main/
- develop/
- feature/
- blubb_feature/
- hotfix/
- make_that_users_dont_die_immediately/
git worktree add BRANCH_NAME
und ein Ordner, der auf einen zeigt, wird für euch erstellt.Aber wie geht das jetzt?
mkdir my_project
(Projektverzeichnis erstellen) und via cd
dort rein wechseln: cd my_project
git clone --bare GIT_URL .bare
. .bare
(Durch den .
am Anfang ist der Ordner unter MacOS/Linux versteckt)my_project/.git
erstellen und folgende Zeile eintragen:
Damit weiß Git jetzt, wo sich unsere Repository Metadaten befindengitdir: ./.bare
git worktree add main
fügt unseren Main-Branch hinzugit worktree add feature/ABC_new_stuff_to_play feature/ABC_new_stuff_to_play
um Branches mit /
im Namen auszuchecken oder zu erstellengit worktree add PATH BRANCHNAME
Weitere hilfreiche Befehle
rm -r BRANCH_NAME
und dann git worktree prune
git worktree list
Listet alle worktree branches.git worktree move SOURCE DESTINATION