2012-05-21 42 views
0

我有一個框架,我編碼,它是一個Github存儲庫,作爲主分支。進入該分支只是框架的核心文件,所以我將其命名爲核心分支。 現在進入其他分支機構,我列出了使用上述核心框架的項目 - 我這樣做是因爲雖然使用分支機構會更容易,但正如我剛剛發現的,事實並非如此。認真。Rebase from commit

所以總結一下:我有一個核心分支項目分支使用該內核。現在在項目分支,我做的主要是提交有關項目(添加圖像X,修改樣式表Y),但有時我修改核心,使其更好。

現在我想要做的,再一次我認爲這很簡單,就是當我開始研究核心而不是項目時,將核心更改合併到核心分支中。 有幾個解決方案,這一切都開始混淆我,因爲我不想搞亂我的核心分支,我應該如何繼續?

我知道我可以選擇提交併推送它,但我真的想保留核心文件更改的歷史記錄,所以我一直被引導到rebasing。 問題是:如果我將核心分支重定義爲項目分支上的特定提交,它將推送與核心無關的所有文件和內容。那麼如何將分配給某個提交(而不是,這似乎是默認設置?)。

這是某種對項目分支什麼承諾可能看起來像的想法:

項目分支

00:12 - Added image X 
00:14 - Modified stylesheet Y to have a pink background (pink is pretty) 
00:16 - Modified class core.background to handle pink background 
00:18 - Modified class core.string to always capitalize Pink (because it's so pretty) 

如何最後兩次提交合併爲核心分支沒有合併兩個與項目有關的第一個,並保留歷史 - 即。將這兩個變化作爲兩個提交而不是一個提交?


編輯:更多精度。 我的核心框架定義了一個項目的文件夾組織,因此需要位於項目文件夾的根目錄下。這就是爲什麼它不是一個子模塊,這本來就是夢想。 另外,我嘗試了核心的分支,但顯然你不能分叉你自己的項目。

如果除了分支之外還有另一種方式來做我想做的事,我全都是耳朵。

回答

1

git分支機構並不像這樣 - 分支機構都與存儲庫相關。將項目或項目的一部分分離成單獨的分支並不是真正的正確途徑。最後,大多數分支應合併成某種類型的release分支,或者丟棄。

我有一個核心分支和一個使用該核心的項目分支。現在在項目分支上,我主要提交與該項目相關的內容......

我真的很想繼續更改核心文件[單獨]

從這個歷史,我覺得這聽起來很像你有兩個不同的版本庫,一個良好的使用情況爲core-files和一個爲project - 你想保持coreproject的歷史分開。我建議將core-files拉到projectsgit submodule,而不是將它們保存在不同分支的同一個存儲庫中。這會給你幾個優點:

  • projectcore歷史是分開的。
  • 使用core與另一個項目很簡單;輸入core作爲otherprojectgit submodule
  • projectcore的歷史很多,更容易維護,因爲您不必在分支之間挑選
+0

嗯,我使用的是子模塊,但由於mt framezork定義了文件夾組織,它需要位於根目錄下,而且不能有根子模塊。否則耶會是完美的。 –