hexo主题的git仓库

父仓库操作

  1. 定位到父仓库的目录
    1
    cd /path/to/parent-repository
  2. 添加子模块
    使用 git submodule add 命令添加现有的 Git 文件夹作为子模块。确保提供子模块的 Git URL 和您希望在父仓库中放置子模块的路径。
    1
    git submodule add /path/to/child-repository.git path/to/child
    这里的 path/to/child-repository.git 是子模块仓库的本地路径,而 path/to/child 是子模块在父仓库中的路径。
  3. 提交更改
    子模块添加后,会有一个新的 .gitmodules 文件和一个记录子模块提交的文件。您需要提交这些更改。
    1
    git commit -m "Add child-repository as a submodule"

子仓库操作(可选)

如果子模块已经是一个远程跟踪的仓库,那么您不需要进行任何操作。但如果它只是一个本地仓库,并且您想要将它推送到远程服务器,您可以这样做:

  1. 定位到子仓库的目录
    1
    cd /path/to/child-repository
  2. 初始化远程仓库(如果尚未完成)
    1
    2
    3
    4
    5
    git init
    git remote add origin <remote_repository_url>
    git add .
    git commit -m "Initial commit"
    git push -u origin master # 或者是 main,取决于您的默认分支名称

克隆含有子模块的父仓库

当其他人克隆您的父仓库时,他们需要执行额外的步骤来克隆子模块:

  1. 克隆父仓库
    1
    git clone <parent-repository-url>
  2. 初始化和更新子模块
    1
    2
    3
    cd parent-repository
    git submodule init
    git submodule update
    这样,子模块就会被克隆并检出到父仓库中指定的提交。

注意事项

  • 子模块的 URL 应该是可访问的,以便其他人能够克隆父仓库并获取子模块。
  • 在提交子模块更改时,父仓库只会记录子模块的提交哈希,而不是子模块的具体文件内容。
  • 子模块的更新和维护需要额外的步骤,因为它们是独立于父仓库的。
    建立父子关系后,您就可以在父仓库中管理子模块,并在需要时更新子模块的内容。