Oto jak rebase
działa:
git checkout <my branch>
git rebase master
git checkout master
git merge <my branch>
Załóżmy, że masz
---o----o----o----o master
\---A----B <my branch>
Pierwsze dwa polecenia ... zatwierdzają polecenie git checkout git rebase master
... sprawdź gałąź zmian, którą chcesz zastosować do master
gałęzi. rebase
Komenda bierze rewizje u <my branch>
(które nie występują w master
) i występuje ponownie je na głowę master
. Innymi słowy, rodzic pierwszego zatwierdzenia w <my branch>
nie jest już poprzednim zatwierdzeniem w master
historii, ale bieżącym szefem master
. Te dwa polecenia są takie same jak:
git rebase master <my branch>
Może być łatwiej zapamiętać to polecenie, ponieważ gałęzie „podstawowa” i „modyfikująca” są jawne.
. Ostateczny wynik historii to:
---o----o----o----o master
\----A'----B' <my branch>
Ostatnie dwa polecenia ...
git checkout master
git merge <my branch>
... wykonaj szybkie przewijanie do przodu, aby zastosować wszystkie <my branch>
zmiany master
. Bez tego kroku zatwierdzenie rebase nie zostanie dodane do master
. Ostateczny wynik to:
---o----o----o----o----A'----B' master, <my branch>
master
i <my branch>
oba odniesienia B'
. Od tego momentu można bezpiecznie usunąć <my branch>
odwołanie.
git branch -d <my branch>
--cached
podczas sprawdzaniagit diff
. link