
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_projectgit 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 BRANCHNAMEWeitere hilfreiche Befehle
rm -r BRANCH_NAME und dann git worktree prunegit worktree list Listet alle worktree branches.git worktree move SOURCE DESTINATION