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

如何在Git中分别提交server与client文件夹?

解决方案:将前后端文件夹分开提交Git

方案一:创建两个独立的Git仓库(最简单直接)

这种方式让client和server完全独立,各自管理代码提交,互不干扰:

  • 先检查根目录是否有.git文件夹,如果有,直接删除(rm -rf .git),避免根仓库影响子文件夹
  • 进入client文件夹,初始化本地仓库:
    cd client
    git init
    
    在client目录创建.gitignore文件,写入需要忽略的内容:
    node_modules/
    .env
    .env.local
    # 其他React项目需要忽略的文件
    
    然后提交client的代码到本地仓库,再关联远程仓库推送即可
  • 回到server文件夹,重复同样操作:
    cd ../server
    git init
    
    在server目录创建.gitignore文件:
    node_modules/
    .env
    # 其他Node.js项目需要忽略的文件
    
    提交server的代码并关联远程仓库

方案二:使用Git子模块(适合根目录统一管理场景)

如果需要在根目录保留一个主仓库,但让client和server作为独立子仓库分开提交,可以用Git子模块:

  • 根目录初始化主仓库:
    git init
    
  • 先给client创建一个远程Git仓库,然后将client作为子模块添加到根仓库:
    git submodule add <client远程仓库地址> client
    
  • 同样给server创建远程仓库,添加为子模块:
    git submodule add <server远程仓库地址> server
    
  • 每个子模块(client和server)各自维护自己的.gitignore和代码提交,根仓库只记录子模块的版本信息。提交根仓库时只会更新子模块的引用,不会包含子模块的代码内容

关于node_modules和.env的注意事项

  • 不管用哪种方案,必须在client和server各自的目录下创建.gitignore文件,把node_modules/和.env加入忽略列表,这样就不会提交这些文件,也不需要在根目录创建额外的.env文件
  • 不要在根目录的.gitignore里写针对子文件夹的忽略规则,因为每个子仓库的忽略规则应该独立维护

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 08:50:36