2012-01-12 57 views
2

我正在閱讀有關GIT子模塊的Phil博客文章,這對我非常有用。 http://philsturgeon.co.uk/blog/2011/09/managing-codeigniter-packages-with-git-submodulesGit子模塊 - 更新和承諾更改

我想知道更新子模塊的過程中的一個步驟:當您對子模塊進行更改並檢查狀態時,它說您不在工作樹中(「您沒有頭「?)。那麼你應該「git checkout master」 - ??? - 但是不會撤銷你所做的所有更改並將你的子模塊返回到先前的狀態?


與子模塊我的理解

那麼就是你做到以下幾點:

1)克隆子模塊

2)初始化和更新子模塊**你只這樣做一次?

3)進行更改

4)結帳「大師」的子模塊**這將不是傑克,你呢?

5)提交子模塊

6)推子模塊**你可以提交主要項目瓦特/推子模塊?

7.)提交主項目

只是想清除我腦海中的事情。


編輯:我想克隆一個子模塊到一個項目與拉動整個超級項目之間是有區別的。看起來像「git submodule init & & update」只有在拉動整個項目時才需要。

回答

0

我的出發流程

  1. 克隆的主要項目
  2. 初始化和更新子模塊
  3. 有趣的子模塊裏面去做git的結帳-b feature_branch
  4. 可做變
  5. 提交他們
  6. 推他們
  7. 進入到主項目
  8. 混帳添加& & git的承諾& &混帳推

當心!您可以將主項目推送到一些公開可用的存儲庫,而不是步驟6,但您真的不應該。因爲它變得對外人無法使用。

我的基本工作流程(假設我們已經實施了一些功能)

  1. 轉到主存儲庫,並簽出想要的分支|標籤|提交
  2. 更新子模塊(此簽出的所有子模塊的期望版本
  3. 往裏走有趣的子模塊,並做git的結帳-b feature_branch
  4. 可做變
  5. 提交米
  6. 把他們
  7. 進入到主項目
  8. 混帳添加& & git的承諾& &混帳推