Git子模块 - 更新和提交更改

时间:2012-01-12 15:51:43

标签: git git-submodules

我正在阅读Phil关于GIT子模块的博客文章,这对我很有帮助。 http://philsturgeon.co.uk/blog/2011/09/managing-codeigniter-packages-with-git-submodules

我想知道更新子模块的过程中的一个步骤:当您对子模块进行更改并检查状态时,它表示您不在工作树中(“您没有头脑”?) 。那你应该是“git checkout master” - ??? - 但是不会撤消所做的所有更改并将子模块返回到先前的状态吗?


因此,对于子模块,我的理解是您执行以下操作:

1。)克隆子模块

2。)初始化和更新子模块**你只做一次吗?

3。)进行更改

4。)在子模块上检查“主人”**这不会让你失望吗?

5.)提交子模块

6。)推送子模块**你可以提交主要项目w / out推送子模块吗?

7.)提交主要项目

只是想在脑海里清理一切。


编辑:我想将子模块克隆到项目与拉动整个超级项目之间存在差异。看起来只有在拉动整个项目时才需要“git submodule init&& update”。

1 个答案:

答案 0 :(得分:0)

我的开始工作流程

  1. 克隆主要项目
  2. 初始化和更新子模块
  3. 进入有趣的子模块并执行 git checkout -b feature_branch
  4. 进行更改
  5. 提交他们
  6. 推他们
  7. 转到主项目
  8. git add&& git commit&& git push
  9. 小心!您可以将主项目推送到某个公开可用的存储库而不执行第6步,但您确实不应该。因为它变得对外人无法使用。

    我的基本工作流程(假设我们已经实现了多项功能)

    1. 转到主存储库并检出所需的分支|标记|提交
    2. 更新子模块(此检出所有子模块的所需版本
    3. 进入有趣的子模块并执行 git checkout -b feature_branch
    4. 进行更改
    5. 提交他们
    6. 推他们
    7. 转到主项目
    8. git add&& git commit&& git push