Podczas pracy z repozytorium gitowym czasem zdarza się, że zaczęliśmy wprowadzać zmiany do kodu, ale przedtem zapomnieliśmy stworzyć nową gałąź. O ile nie został poczyniony commit, sprawa jest bardzo prosta do uratowania. Aby dodać na nową gałąź zmodyfikowane pliki wystarczy poniższa sekwencja poleceń.
Status?
Na początek sprawdzenie, jaki jest status zmian. Zmodyfikowany został plik README.md. Nie chcemy commitować tych zmian do gałęzi master.
d9k@Nihilia:~$ git status # On branch master # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: README.md # no changes added to commit (use "git add" and/or "git commit -a")
Nowa gałąź
Do stworzenia nowej gałęzi i automatycznego przełączenia się na nią, wraz z przeniesieniem naruszonych plików można użyć polecenia:
git checkout -b|-B []
d9k@Nihilia:~$ git checkout -b documentation
Sprawdzenie statusu – nic się nie zmieniło, poza tym, że jesteśmy na nowej gałęzi nazwanej documentation:
d9k@Nihilia:~$ git status # On branch documentation # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: README.md no changes added to commit (use "git add" and/or "git commit -a")
Wysłanie zmian
Wystarczy dodać zmiany i wysłać na serwer nową gałąź, wraz ze wszystkimi wprowadzonymi zmianami. Procedura jest już standardowa:
d9k@Nihilia:~$ git add -A d9k@Nihilia:~$ git commit -m "ten commit znajdzie sie w galezi documentation" d9k@Nihilia:~$ git push origin documentation
Wszystko znaleźć można oczywiście w naprawdę świetnej dokumentacji Gita (https://git-scm.com/docs/git-checkout). Zachęcam do zgłębienia tematu 🙂