najwyraźniej kompletnie nie rozumiem jak to działa, mimo że trochę czytałem na ten temat.
A czy stosowałeś to w praktyce? Najlepiej to rób na jakimś nowym folderze. Zrób sobie folder z głupotami napisz bla, bla
czy coś i zacommituj do mastera, potem zrób np. git checkout -b nowa-galaz
i ogólnie baw się tym. Sprawdzaj stan folderu i zawartość plików, zmieniaj je, commituj, przełączaj się między gałęziami. Tylko rób to na jakichś nowych repozytoriach (tak, że nawet jak coś zepsujesz, to nie będzie szkoda, więc do woli będziesz mógł eksperymentować)
(Nawiasem mówiąc jeśli tak ci się zdarzy, że zepsujesz w Git coś na prawdziwym repo, to też często da się to uratować - stack overflow przychodzi z pomocą)
Czy tworzenie branchy w jednoosobowym projekcie to stosowana praktyka?
Niektórzy powiedzą, że tak, ale obecnie rzadko robię branche w jednoosobowych projektach. Kiedyś mi się zdarzało częściej. Chociaż niedawno się zdarzyło, jak sobie "zabrudziłem" projekt eksperymentami i nie chciałem tego commitować do mastera, ale nie chciałem wyrzucać tego kodu. To jest sobie na pobocznej gałęzi.
powinienem utworzyć kopię pliku
Jeśli zacommitowałeś coś w Git, to już Git ci zrobił kopię pliku. Chyba, że masz na myśli niezacommitowane zmiany, wtedy trzeba uważać, bo niektóre komendy Gita mogą ci je skasować (albo w ogóle się nie uruchomić krzycząc, że masz niezacommitowane zmiany). Wtedy należy je zacommitować albo użyć komendy git stash
, żeby tymczasowo przechować.
Jak coś jest w Gicie, to spoko, ale jak nie zacommitowałeś, to trzeba uważać.
Czy ma sens?
Używanie gałęzi ma zalety i wady. Wadą jest to, że potrzebujesz ogarniać, co jest w której gałęzi. Masz nagle ileś wersji projektu. I są to wersje, o których sam musisz myśleć. Możesz mieć tysiąc commitów w masterze i nie musisz o nich myśleć, bo od tego jest Git. Ale jak narobisz ileś gałęzi, to potrzebujesz dbać o to, żeby się nadawały do łatwego zmerdżowania, bo inaczej te gałęzie będą się tak różnić od mastera, że już ich łatwo nie zmerdżujesz, bo będą konflikty albo sobie rozwalisz coś w projekcie. Natomiast gałęzie mają też zalety (w przypadku 1 osobowego programowania np. można łatwo eksperymenty robić)
Czy przed stworzeniem nowego brancha lokalnie, powinienem utworzyć kopię pliku, który chcę zmodyfikować i zacommitować do niego?
Jeśli mówisz o git checkout -b nowa-galaz
to tworzy ci nową gałąź, ale nie kasuje ci zmian. Więc robisz coś, jesteś na masterze i masz niezacommitowane zmiany, tworzysz sobie nową gałąź i cię przełącza na nową gałąź i możesz commitować już do nowej gałęzi.