git/list[1] front-page[2] threads[3] people[4] search[5] about
 

git rebase interactive breaks when working on a secondary worktree

From
Denilson Sá Maia <denilsonsa@gmail.com>
Date
Jun 26, 2025, 10:49 UTC
Message-ID
<CACGt9y=WktE5Tqkxf6_tb_YnaeDyJTGYZoU7vErnSGnZMpuC-Q@mail.gmail.com>
git rebase interactive breaks when working on a secondary worktree
## What did you do before the bug happened?
1. `git clone` a repository.
2. `git worktree add` to have a second branch checked out in another directory.
3. Continue working as normal. The main branch has a bunch of extra
commits (at the main worktree).
4. At the second worktree, after a while, try `git rebase -i
hash_of_a_few_commits_ago`, or `git rebase -i main` (where main is the
main branch at the main worktree).
5. Approve the plan, even without any changes.
## What did you expect to happen?
It should work.
## What happened instead?
I get this error:
    error: Your local changes to the following files would be
overwritten by checkout:

Followed by a list of several files that were NOT changed in my secondary branch at my secondary worktree.

What's more, if I redo the `git rebase` but without `-i`, it works fine without any errors.

## What's different between what you expected and what actually happened?

If I try following the exact same steps (the exact same git rebase -i) on the exact same branch, but this time having it checked out at the main worktree, then everything works.

## Anything else you want to add:
I've been hitting this error for several months.

It doesn't happen every time, it depends on the commits from both branches. Thus, it's hard for me to give you a minimal reproducible example git repository.

Given the circumstances, I believe some part of the `git rebase --interactive` codepath is not working correctly with worktrees, and thus it's misbehaving.

[System Info] git version: git version 2.49.0 cpu: arm64 no commit associated with this build sizeof-long: 8 sizeof-size_t: 8 shell-path: /bin/sh feature: fsmonitor--daemon libcurl: 8.7.1 zlib: 1.2.12 uname: Darwin 24.5.0 Darwin Kernel Version 24.5.0: Tue Apr 22 19:54:29 PDT 2025; root:xnu-11417.121.6~2/RELEASE_ARM64_T6030 arm64 compiler info: clang: 17.0.0 (clang-1700.0.13.3) libc info: no libc information available $SHELL (typically, interactive shell): /bin/zsh

[Enabled Hooks] applypatch-msg commit-msg post-applypatch post-checkout post-commit post-merge post-rewrite pre-applypatch pre-auto-gc pre-commit pre-merge-commit pre-push pre-rebase prepare-commit-msg

-- 
Denilson Figueiredo de Sá Maia
https://denilson.sa.nom.br/
Next: Kristoffer Haugsbakk
Message 1 of 5 in “git rebase interactive breaks when working on a secondary worktree”
  1. Denilson Sá MaiaJun 26, 2025
  2. Kristoffer HaugsbakkJun 26, 2025
  3. Denilson Sá MaiaJun 26, 2025
  4. Phillip WoodJun 27, 2025
  5. Denilson Sá MaiaJun 27, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.