如何在Git中分别提交server与client文件夹?
解决方案:将前后端文件夹分开提交Git
方案一:创建两个独立的Git仓库(最简单直接)
这种方式让client和server完全独立,各自管理代码提交,互不干扰:
- 先检查根目录是否有
.git文件夹,如果有,直接删除(rm -rf .git),避免根仓库影响子文件夹 - 进入client文件夹,初始化本地仓库:
在client目录创建cd client git init.gitignore文件,写入需要忽略的内容:
然后提交client的代码到本地仓库,再关联远程仓库推送即可node_modules/ .env .env.local # 其他React项目需要忽略的文件 - 回到server文件夹,重复同样操作:
在server目录创建cd ../server git init.gitignore文件:
提交server的代码并关联远程仓库node_modules/ .env # 其他Node.js项目需要忽略的文件
方案二:使用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
相关产品推荐
相关产品推荐

