Rebase

Dotychczasowe techniki łączenia dwóch gałęzi były niedestrukcyjne - ich działanie w żaden sposób nie modyfikowało historii. Rebase jest formą łączenia dwóch gałęzi destrukcyjną - zmienia on historię gałęzi, do której włączamy zmiany.

Dzieje się tak dlatego, że w trakcie procesu rebase zmiany dokonane w ramach gałęzi są tymczasowo usuwane i nanoszone na nowo z tą różnicą, że przodek nowych commitów jest teraz aktualną wartością HEAD łączonej gałęzi:

Ćwiczenie

Stwórz nowe repozytorium:

mkdir git-rebase-clean
cd git-rebase-clean
git init
touch README.md
touch LICENSE.md
git add README.md LICENSE.md
git commit -m "Initial commit"

Teraz stwórz nowy branch i dokonaj na nim zmian:

git checkout -b license
echo '#LICENSE' > LICENSE.md
git add LICENSE.md
git commit -m "License"

Wróć na branch master i tam też dokonaj zmian:

git checkout master
echo '#README' > README.md
git add README.md
git commit -m "README"

Wypisz historię gałęzi master - zapisz SHA1 commitów.

Przejdź na branch license i zapisz SHA1 commitów znajdujących się na nim:

Dokonaj rebase i sprawdź jak wygląda historia:

git rebase master

results matching ""

    No results matching ""