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

如何获取未推送本地分支中已提交变更的修改文件列表?

解决未推送本地分支的变更文件列表获取问题

针对你提到的场景——本地分支未推送到远程、且非基于master分支,以下是几个可行的方案:

  • 明确基准分支直接对比
    如果你清楚当前分支基于哪个本地分支(比如production),直接对比该分支与当前HEAD的差异:

    git diff production..HEAD --name-only
    

    这完全符合你想要的<Local branch>..HEAD效果,只需替换成实际的基准分支名称即可。

  • 自动查找基准提交
    若不确定基准分支,可用git merge-base命令找到当前分支与目标基准分支的共同祖先,再对比差异:

    git diff $(git merge-base production HEAD)..HEAD --name-only
    

    要是完全忘记了基准分支,还能通过git reflog show --no-abbrev-commit <你的分支名>查看分支创建记录,定位最初的基准提交。

  • 利用分支上游追踪
    若创建分支时已关联本地基准分支(比如git checkout -b my-branch production),可通过@{upstream}引用上游分支:

    git diff @{upstream}..HEAD --name-only
    

    没设置过上游的话,先执行git branch --set-upstream-to=production完成关联,再用上述命令即可。

  • 提取所有未推送提交的修改文件
    若想一次性获取当前分支所有未推送到远程的已提交变更文件,可直接用日志命令筛选:

    git log --not --remotes=origin --name-only --pretty=format: | sort | uniq
    

    这个命令会提取所有未推送到origin远程的提交内的文件,最后自动去重输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 11:15:03