3. Gałęzie Gita
- 7.1 Wskazywanie rewizji
- 7.2 Interaktywne używanie przechowali
- 7.3 Schowek i czyszczenie
- 7.4 Signing Your Work
- 7.5 Searching
- 7.6 Przepisywanie historii
- 7.7 Reset Demystified
- 7.8 Advanced Merging
- 7.9 Rerere
- 7.10 Debugowanie z Gitem
- 7.11 Moduły zależne
- 7.12 Bundling
- 7.13 Replace
- 7.14 Credential Storage
- 7.15 Podsumowanie
A3.8 Appendix C: Git Commands - Patching
A few commands in Git are centered around the concept of thinking of commits in terms of the changes they introduce, as though the commit series is a series of patches. These commands help you manage your branches in this manner.
git cherry-pick command is used to take the change introduced in a single Git commit and try to re-introduce it as a new commit on the branch you’re currently on. This can be useful to only take one or two commits from a branch individually rather than merging in the branch which takes all the changes.
Cherry picking is described and demonstrated in Zmiana bazy oraz wybiórcze pobieranie zmian.
git rebase command is basically an automated
cherry-pick. It determines a series of commits and then cherry-picks them one by one in the same order somewhere else.
Rebasing is covered in detail in Zmiana bazy, including covering the collaborative issues involved with rebasing branches that are already public.
We use it in practice during an example of splitting your history into two separate repositories in Replace, using the
--onto flag as well.
We go through running into a merge conflict during rebasing in Rerere.
We also use it in an interactive scripting mode with the
-i option in Zmiana kilku komentarzy jednocześnie.
git revert command is essentially a reverse
git cherry-pick. It creates a new commit that applies the exact opposite of the change introduced in the commit you’re targeting, essentially undoing or reverting it.
We use this in Reverse the commit to undo a merge commit.