You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Git rebase在存在未跟踪文件时停止执行

解决Git Rebase时未跟踪文件持续传递的问题
  • 核心方案:通过pre-rebase钩子阻止未跟踪文件下的rebase执行
    在Git仓库的.git/hooks/目录下创建(或修改)pre-rebase脚本,添加以下代码实现未跟踪文件检测,一旦存在就终止rebase流程:

    #!/bin/sh
    
    # 筛选出未跟踪且未被.gitignore忽略的文件
    UNTRACKED_FILES=$(git ls-files --others --exclude-standard)
    
    if [ -n "$UNTRACKED_FILES" ]; then
        echo "错误:存在未跟踪文件,终止rebase。请先处理这些文件(添加到暂存区、删除或添加到忽略列表)。"
        echo "未跟踪文件列表:"
        echo "$UNTRACKED_FILES"
        exit 1
    fi
    
    # 无未跟踪文件时,允许rebase继续执行
    exit 0
    

    保存后给脚本添加可执行权限:

    chmod +x .git/hooks/pre-rebase
    

    此后每次执行git rebase前,Git会自动运行该脚本,检测到未跟踪文件就直接终止操作,避免未跟踪文件被带入后续rebase步骤。

  • 额外提示

    • 若临时需要跳过检查,可执行git rebase --no-verify,但不建议在存在未跟踪文件时频繁使用,仍有数据风险。
    • 若希望自动暂存未跟踪文件而非终止rebase,可执行git config --global rebase.autostash true,但这仅会暂存文件,rebase完成后恢复,不符合"阻止执行"的需求。

内容的提问来源于stack exchange,提问作者Devin Rhode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 14:20:50