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

Git工作流问题:为何推送克隆仓库而非仅构建产物?

问题原因与修正方案

你出错的核心是在原克隆仓库的Git环境里操作——原仓库本身带着所有源码文件、提交历史,哪怕你只添加了构建产物,Git推送的是当前分支的完整历史(包括原仓库的全部内容),不是仅你新提交的那部分文件。

正确的单仓库构建产物推送流程

  • 先克隆原仓库并完成构建:
    git clone <原仓库地址>
    cd <原仓库目录>
    # 执行你的构建命令,生成目标可执行文件
    
  • 离开原仓库,新建一个完全空白的目录作为独立Git环境:
    cd ..
    mkdir temp-build-dir
    cd temp-build-dir
    git init
    git remote add new-repo <你的新仓库地址>
    
  • 把构建产物复制到这个空白目录,再提交推送:
    cp ../<原仓库目录>/<你的产物文件名> ./
    git add <你的产物文件名>
    git commit -m "Add build artifact from <原仓库名称>"
    git push new-repo main --force
    

两个仓库产物推送至同一新仓库的流程

  • 分别克隆两个仓库,完成构建得到各自的可执行文件(比如repo1产物为app1.exe,repo2为app2.exe)
  • 新建空白目录并初始化Git:
    mkdir combined-builds
    cd combined-builds
    git init
    git remote add new-repo <新仓库地址>
    
  • 复制两个产物到该目录,提交推送:
    cp ../repo1/app1.exe ./
    cp ../repo2/app2.exe ./
    git add app1.exe app2.exe
    git commit -m "Add build artifacts from repo1 and repo2"
    git push new-repo main --force
    

备选方案(不推荐,易误操作)

如果不想新建目录,也可以在原仓库里清空所有历史和文件,只保留构建产物:

cd <原仓库目录>
# 谨慎执行:删除原仓库所有文件和Git历史
rm -rf .git *
git init
git remote add new-repo <新仓库地址>
# 把构建产物移回当前目录(如果构建产物在子目录需调整路径)
git add <产物文件名>
git commit -m "Add build artifact"
git push new-repo main --force

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 21:12:09