Allgemein
Knowledge Base
- Neue Struktur (In Arbeit)
- Computertechnisches
Community
Privat
Mit der Zeit sammeln sich im Repository immer mehr Branches an, arbeitet man nicht nur auf dem default-Branch. Was ehrlich gesagt eine ganz schlechte Idee ist.
Um mal eben etwas auszuprobieren sollte immer zuerst ein neuer Branch angelegt werden. Möchte man es als feature markieren, schreibt man das Wort 'feature/' einfach davor. Man sollte nur vorher kurz sicherstellen, von welchem Stand man dieses Feature starten möchte und stellt sich ggf. in diesen Stand.
git checkout -b feature/neues-feature
Schon ist man im neuen Branch feature/neues-feature und kann da drin rumrödeln, ohne Gefahr zu laufen sich den eigentlichen Sourcestand gleich zu zerlegen.
Gefällt einem die Änderung, geht es zurück in den default-Branch mit:
git checkout master
Jetzt kann mit merge die Änderung in den default-Branch gezogen werden.
git merge feature/neues-feature
Kommt es dabei zu Fehlern, müssen diese erst behoben werden, dabei helfen einem so nette Tools wie IntelliJ mit seiner 3fach Ansicht wo die unterschiedlichen Änderungen dann Zeile für Zeile kontrolliert werden können. Sehr zu empfehlen.
Anzeigen, welche Branches es gibt:
git branch
möchte man die zugehörigen Remote-Branches auch sehen:
git branch -vv
möchte man alle Branches sehen, lokal wie Remote:
git branch -a
Mit der Zeit sammeln sich alte Branches an, diese kann man bedenkenlos löschen, sind die Änderungen erstmal im default-Branch gelandet. Oder man sich gegen ein Feature entschieden hat, warum auch immer. Es wird unterschieden zwischen lokalen Branches, die auf der eigenen Platte liegen und Remote-Branches, die auf einem z.B. zentralen Repository liegen.
Löscht den lokalen Branch
git branch -d feature/branch
Löscht einen remote Branch
git branch -dr origin/feature/branch
Löscht lokale Branches, für die es kein Remote mehr gibt oder nie gab.
git fetch -p LC_ALL=C git branch -vv | grep ': gone]' | awk '{print $1}' | xargs git branch -d