具有子模块的git回购中的分支

具有子模块的git回购中的分支,git,git-submodules,Git,Git Submodules,假设我创建了一个git回购协议,其中包含一个子模块。然后我克隆repo(带有子模块),并在本地repo中创建一个分支。该分支是否包括子模块?如果我在repo中更改了两个文件f1和f2,其中f1在子模块中,f2在子模块之外,然后提交我的更改,那么提交会同时包括这两个文件吗?如果我按下提交按钮,会改变远程子模块吗 您的新分支将包括子模块 子模块-是一个单独的存储库。所以为了保存更改,首先需要提交到子模块存储库。然后,您可以将子模块已更改的内容提交到主存储库。总的来说,“主”存储库指向子模块存储库的某

假设我创建了一个git回购协议,其中包含一个子模块。然后我克隆repo(带有子模块),并在本地repo中创建一个分支。该分支是否包括子模块?如果我在repo中更改了两个文件f1和f2,其中f1在子模块中,f2在子模块之外,然后提交我的更改,那么提交会同时包括这两个文件吗?如果我按下提交按钮,会改变远程子模块吗

  • 您的新分支将包括子模块
  • 子模块-是一个单独的存储库。所以为了保存更改,首先需要提交到子模块存储库。然后,您可以将子模块已更改的内容提交到主存储库。总的来说,“主”存储库指向子模块存储库的某些特定提交

  • 是,它将包括子模块,但不会将f1提交到子模块的回购

    将子模块视为子回购。它是当前回购协议中引用的独立存储库。假设许多团队/回购组织也通过子模块引用/使用该存储库

    cd SubmoduleRepo
    git commit --all -m "Change submodule code" // commit changes directly to submodule repo
    git push submodule_origin // push changes to remote submodule repo
    cd .. // go back to main repository working folder
    
    git add SubmoduleRepo // commit that submodule repo was changed
    git commit -m "Updated submodule" 
    git push origin // push changes for the main repo