Git - 将子文件夹初始化为单独的存储库(子模块)

Visual Studio 管理项目是一个解决方案对多个项目,所以将每个项目分拆到单独的存储库也算是合理的。


假设文件夹/解决方案名为Solution1,要推送到 <url-solution> 项目文件夹/项目名为ConsoleProject1,要推送到 <url-project1>

  1. Solution1ConsoleProject1 中均添加一个 .gitignore 忽略列表,Visual Studio 的最新列表可以从 https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 获取
  2. 进入子文件夹 ConsoleProject1,初始化存储库,并推送到远程
    cd ConsoleProject1
    git init
    git add .
    git commit -m "initial commit"
    git remote add origin <url-solution>
    git push -u origin master
    
  3. 回到父文件夹 Solution1,添加一个 .gitmodules 文件,并写入以下内容
    [submodule "ConsoleProject1"]
    	Path = ConsoleProject1
    	url = <url-project1>
    
  4. 在父文件夹初始化存储库、添加、提交、推送
    git init
    git add .
    git commit -m "initial commit"
    git remote add origin <url-project1>
    git push -u origin master
    

如果远程是 GitHub 的话,那么可以直接在 <url-solution> 里面看到子模块

别人克隆的时候:

git clone <url-solution> --recurse-submodules

参考:

posted @ 2023-12-05 14:16  BrandonPei  阅读(137)  评论(0)    收藏  举报