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

如何获取两个独立Git仓库不同分支的文件差异列表

对比Git仓库A的support/v1分支与仓库B的master分支文件差异(找出B缺失的文件)

方法一:通过远程仓库关联对比

适合已本地拥有其中一个仓库的场景:

  • 进入仓库B的本地目录:
    cd /path/to/your/repo-B
    
  • 将仓库A添加为B的远程仓库(命名为upstream方便区分):
    # 本地仓库路径的情况
    git remote add upstream /path/to/your/repo-A
    # 远程仓库URL的情况
    git remote add upstream https://example.com/your/repo-A.git
    
  • 拉取仓库A的最新代码到本地:
    git fetch upstream
    
  • 对比两个分支的文件状态:
    • 查看所有文件的差异状态(新增、删除、修改):
      git diff upstream/support/v1 master --name-status
      
    • 只筛选出B的master分支中缺失的文件(即A的support/v1存在但B没有的):
      git diff upstream/support/v1 master --name-status | grep "^D"
      
      这里的D状态表示对比的右侧分支(master)中该文件已删除,也就是B中无此文件。

方法二:本地克隆两个仓库后直接对比

适合两个仓库都未克隆到本地的场景:

  • 克隆两个仓库到本地:
    git clone <repo-A-url> repo-A
    git clone <repo-B-url> repo-B
    
  • 切换到对应分支:
    # 进入仓库A并切换到support/v1
    cd repo-A && git checkout support/v1
    # 进入仓库B并切换到master
    cd ../repo-B && git checkout master
    
  • 直接对比两个仓库的目录内容:
    • 查看所有文件差异状态:
      git diff --no-index ../repo-A ../repo-B --name-status
      
    • 只筛选B中缺失的文件:
      git diff --no-index ../repo-A ../repo-B --name-status | grep "^D"
      
      --no-index参数允许Git对比非仓库目录或不同仓库的目录内容。

额外说明

  • 若需查看具体文件的内容差异,去掉--name-status参数即可直接看到文件内容变更。
  • 方法一中如果后续不需要关联仓库A,可执行git remote remove upstream移除远程关联。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 01:55:30