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

Git实现仅向私有远程提交资产,适配多分支代码开源需求

解决方案

方法一:双分支+定向推送(适配已有双仓库场景)

  • 以私有仓库的main分支作为核心分支,正常提交游戏代码与assets文件夹,不对其做忽略处理。
  • 创建并切换至公开分支:
    git checkout -b public
    
  • 在public分支中移除assets的跟踪记录并提交:
    git rm -r --cached assets
    echo "assets/" >> .gitignore
    git add .gitignore
    git commit -m "停止跟踪assets文件夹,适配公开分支"
    
  • 后续开发流程:在main分支同步更新代码与资产,再将main分支的代码合并至public分支(合并时使用git merge main --no-ff,若出现冲突,优先保留public分支的.gitignore配置)。
  • 定向推送至对应远程仓库:
    # 推送私有内容到私有仓库
    git push private-repo main
    # 推送公开内容到公开仓库
    git push public-repo public:main
    
  • 分支切换说明:main分支下assets正常可见并被跟踪;切换到public分支时,本地assets文件夹不会被删除,但Git会忽略它,不会提交到公开仓库。

方法二:Git子模块分离资产(权限隔离更清晰)

  • 新建私有仓库专门存储游戏资产,将所有资产提交至该仓库。
  • 在公开的游戏代码仓库中,添加私有资产仓库作为子模块:
    git submodule add <私有资产仓库地址> assets
    
  • 提交子模块引用至公开仓库:
    git add .gitmodules assets
    git commit -m "添加assets子模块引用"
    
  • 推送公开仓库至远程后,公开仓库仅包含子模块的引用信息,不会存储实际资产;其他用户克隆公开仓库时,默认不会拉取私有资产。
  • 自身本地开发时,拉取代码后初始化并更新子模块:
    git submodule init
    git submodule update
    
  • 后续更新:进入assets子模块文件夹,直接提交修改到私有资产仓库;游戏代码的更新在主仓库操作,两者互不干扰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 00:27:25