The rebase stopped cold, asking for input you couldn’t give.
It wasn’t your code. It wasn’t your branch. It was your terminal’s lack of a proper TTY. Git rebase needs a TTY when an interactive step requires human input—like editing commits, picking hunks, or rewriting messages. Without a TTY, Git can’t open your editor, can’t let you resolve conflicts, and can’t drop into that prompt you expect.
This error shows up most when rebasing inside CI/CD pipelines, Docker containers, or remote scripts. Commands like git rebase -i are designed for an interactive shell with a TTY attached. When that’s missing, Git throws warnings such as:
Interactive rebase not possible. No TTY detected.
or
error: cannot run vim: No such file or directory
error: unable to start editor 'vim'
Why Git Rebase Needs a TTY
Git launches your default editor and writes to standard input and output through the terminal. That terminal must be interactive, not just a redirected stream. Without tty-enabled sessions, Git sees no valid channel to send prompts or receive keystrokes.
Fixing TTY Issues in Git Rebase
- Run the command from a local terminal with TTY enabled:
git rebase -i HEAD~3
- In Docker, allocate TTY with
-t and interactive flag -i:
docker exec -it <container> /bin/bash
- In SSH sessions, ensure you request a TTY:
ssh -t user@host
- For CI/CD, avoid interactive rebase steps. Script out non-interactive rebases using options like
--autosquash or --no-editor.
Working Without a TTY
Interactive rebase is not possible in pure non-interactive environments. Use automated commit rewriting tools, prebuilt hooks, or configure Git’s editor to a command that can run headless. If you must edit mid-rebase, you need a real TTY—locally, or remotely with allocation.
Stop losing pipeline runs to missing TTY errors. Spin up a live environment that just works, with interactive Git flows ready to go. Check out hoop.dev and see it run for yourself in minutes.