Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chapter 3.6 rebasing "More Interesting Rebases" example requires direct checkout of commit by SHA1 instead of branch #1994

Open
5 tasks done
jrvjrv opened this issue Nov 25, 2024 · 0 comments
Labels

Comments

@jrvjrv
Copy link

jrvjrv commented Nov 25, 2024

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

@jrvjrv jrvjrv added the bug label Nov 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant