Description
There's no existing/similar bug report.
- I have searched the existing issues
This report is about a single actionable bug.
- I'm reporting a single actionable bug
This report is about the ProGit book, version 2, English language.
- This bug is not about a translation or old version
Bug covers book website/pdf
- I confirm the bug is about the book as found on the website/pdf
Problem is present in the Pro Git book on the website?
- This bug also affects the Pro Git book as published on the website.
Which version of the book is affected?
Source files
Describe the bug:
On page https://git-scm.com/book/en/v2/Git-Branching-Rebasing, https://git-scm.com/book/en/v2/images/interesting-rebase-1.png, I am assuming the commits are done in the order indicated by the number, e.g. C1 first then C2, C3, C4, etc. If so when C5 & C6 are created, branch server
is pointing at C4. In order to get branch client
to begin at C3 the user would have to use the command git checkout [C3 SHA]
or similar after adding C5 & C6. If the user executes git checkout server
(as I expected) the tree is wrong; client
branches from C4, not C3.
Steps to reproduce:
view page https://git-scm.com/book/en/v2/Git-Branching-Rebasing, section "More Interesting Rebases"
Expected behavior:
This is not technically wrong. The client
branch could have originated after a checkout of the raw C3 SHA, but if the user performs git checkout server
to begin the client
branch the command git rebase --onto master server client
results in rebase conflicts, and it also means that "C3" is included. As a naive git user the first time I tried to follow the example I executed git checkout server
not noticing that it was pointing at C4 instead of C3 before adding C8 while trying to reproduce the sequence. This led to difficulties in the rebase.
After studying the problem for a while I figured out what the issue was and performed a checkout on the raw C3 SHA before creating the client
branch. This did behave as I expected, but it feels like this was not how the author intended the example to proceed.
It has just now occurred to me that immediately after creating commit C3 the user could create branch client
with no commits then switch back to branch server
and create commit C4. Branch client
would then point at C3, and everything would work as I think is expected. To me it would be desirable to include these instructions for those of us who attempt to reproduce the flow in the diagram.
Screenshots:
No response
Additional context:
No response
Device
No response
Operating system
No response
Browser/application + version
No response