Skip to content
Back to skills

Git Rebase Noninteractive Editor

ASecurity

Fix 'git rebase --continue' (and 'git rebase -i') blocking or timing out in a non-interactive shell (bash tools, CI, scripts, scheduled jobs) because git opens an interactive editor (nano/vi) with no TTY that waits forever for stdin. Use when: rebase --continue hangs or the shell tool times out with no commit produced (especially after 'git add'-ing resolved conflicts); you see 'GNU nano' or a vi screen in rebase output; you are about to re-run --continue hoping it works; or you are doing ANY...

  • 39 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 30, 2026
toolsshellbashgit

Security analysis

A100/100

Scanned September 30, 2026

npx -y skills add ericmjl/skills --skill git-rebase-noninteractive-editor --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Git Rebase Noninteractive Editor?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Git Rebase Noninteractive Editor
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ericmjl-git-rebase-noninteractive-editor/badge)](https://www.skillsdirectory.com/skills/ericmjl-git-rebase-noninteractive-editor)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: git-rebase-noninteractive-editor
description: >-
  Fix 'git rebase --continue' (and 'git rebase -i') blocking or timing out in a non-interactive shell (bash tools, CI, scripts, scheduled jobs) because git opens an interactive editor (nano/vi) with no TTY that waits forever for stdin. Use when: rebase --continue hangs or the shell tool times out with no commit produced (especially after 'git add'-ing resolved conflicts); you see 'GNU nano' or a vi screen in rebase output; you are about to re-run --continue hoping it works; or you are doing ANY interactive rebase operation (reword, squash, re-order) from a non-interactive tool. FIX: prefix with the env var set to ':' or 'true' — 'GIT_EDITOR=true git rebase --continue' accepts the prepared message (continue has NO --no-edit flag), 'GIT_SEQUENCE_EDITOR=: git rebase -i main' accepts the TODO list, both at once for a full interactive rebase, or 'export GIT_EDITOR=true' for multi-step sessions. Root cause and lookalike distinctions in the body.
created_at: "2026-08-05"
---

# Git Rebase Noninteractive Editor

Fix 'git rebase --continue' (and 'git rebase -i') BLOCKING indefinitely or timing out in a non-interactive shell (opencode bash tool, CI, scripts, scheduled jobs) because it opens an interactive editor (nano/vi) that has no TTY and waits forever for stdin. Use when: you resolved rebase conflicts and ran 'git rebase --continue' but the command hangs / times out / the shell tool terminates after exceeding timeout; you see 'GNU nano' or a vi screen in the output of a rebase --continue; 'git rebase --continue' produced no output and seems stuck; you are about to re-run --continue hoping it works (it won't — the editor will block again); or you are doing ANY interactive rebase operation (reword, squash, re-order) from the opencode bash tool or CI. ROOT CAUSE: git invokes an editor at TWO rebase phases via TWO DIFFERENT env vars — GIT_EDITOR fires for commit-message editing during 'rebase --continue' after conflict resolution (and for 'reword'); GIT_SEQUENCE_EDITOR fires for the TODO-list editing during 'git rebase -i' (pick/squash/reorder). In a non-interactive shell with no TTY, nano/vi blocks waiting for input that never arrives. FIX: prefix the command with the env var set to ':' (the no-op/true builtin) or 'true' — 'GIT_EDITOR=true git rebase --continue' accepts the prepared commit message as-is; 'GIT_SEQUENCE_EDITOR=: git rebase -i main' accepts the TODO list as-is; for BOTH phases at once use 'GIT_EDITOR=true GIT_SEQUENCE_EDITOR=: git rebase -i base'. NOTE: 'git rebase --continue' has NO --no-edit flag (that flag is git-commit-only), so the env var is the ONLY clean way to skip the editor on continue. SMOKING GUN: 'git rebase --continue' hangs or the shell tool times out with no commit produced, especially right after you 'git add'-ed resolved conflicts. ALSO: set the env var GLOBALLY for a session ('export GIT_EDITOR=true') if you expect multiple continue steps in one rebase. Distinct from memory #1300 (uv not on PATH in non-interactive shell — a binary-discovery problem, not an editor-blocking problem) and from memory #1302 (execution-discipline during rebase narration — a behavior problem; THIS is a mechanical blocking problem with a mechanical fix).

## Instructions

TODO: Add specific instructions based on observed patterns.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…