-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Description
Describe the bug
When git.log.showWholeGraph is enabled or toggled using "Ctrl+L" in lazygit, rebasing or fixup/squashing/reword commits on a feature branch, a wrong rebase base is chosen that caused it to pulls in commits from sibling branches that share the same base (e.g., main or develop), even if those commits are unrelated to the current branch.
To Reproduce
Steps to reproduce the behavior:
- Create two feature branches from main
- Open lazygit with git.log.showWholeGraph : true (edit in config.yml or toggle using "Ctrl+L")
- Checkout feature/B.
- Perform a rebase or fixup on B1 (e.g., squash into previous or rebase onto main).
- Observe: Commit A1 from feature/A now appears in the commit history/log of feature/B.
Expected behavior
- Rebase/fixup on feature/B should only affect commits on feature/B.
- Commits from feature/A should not be included ("pollution").
- A rebase base should be chosen correctly.
- This matches behavior when using git rebase directly in the CLI.
Screenshots
If applicable, add screenshots to help explain your problem.
- Create two feature branches, here I call it "dev-a" and "dev-b", each has two commits branching off the main branch.
- Now, I will checkout dev-b and perform "squash" by pressing "s". Observe that the "pollution" happened here, as the git graph now shows that commits in "dev-a" is being merged into the commit history of "dev-b"
- Now I revert it, still checked out to "dev-b" branch and by using git CLI to perform squash the
DESIRED OUTCOME is as shown.
git rebase -i HEAD~2
- Another example, using lazygit rebase feature by pressing "i"
- Same "pollution" happened here as well, this behavior has been replicable in fixup, reword as well, as long as the git log --all
Here onwards showcases some of my debugging efforts
- Using lazygit --debug and lazygit --logs, when I perform rebase using lazygit by pressing "i".
Here the base commit chosen is 333e0175a, this commit points to "dev-a" instead of "main" branch.
- The function responsible for obtaining the base commits used in the interactive rebase, called by "quickStartInteractiveRebase"
Version info:
-
Run
lazygit --versionand paste the result here
commit=3de12b7fde56cec5d0fc27b1986180c27e50d971, build date=2025-09-17T18:42:05Z, build source=binaryRelease, version=0.55.1, os=linux, arch=amd64, git version=2.43.0 -
Run
git --versionand paste the result here
git version 2.43.0
Additional context
Add any other context about the problem here.
Note
Please try updating to the latest version or manually building the latest master to see if the issue still occurs.