2012-05-26 112 views
1

我試圖做類似的事情這樣:Creating GitHub repository with only a subset of a local repository's history的Git版本分行壓扁提交

我現在有我的主人所有的提交,現在我想打一個分支叫新聞稿中只有一個承諾過去所有犯下的承諾都沒有歷史記錄。

我嘗試使用該鏈接中的方法,但這樣做導致任何進一步合併到發佈不自動合併,這有點煩人。 (它給出的錯誤是Squash提交 - 不更新HEAD,自動合併失敗;修復衝突,然後提交結果。) 有沒有其他方法可以自動合併?

我知道最簡單的方法是創建一個單獨的回購,但理想情況下,我寧願只使用分支。

我希望它結束​​了看起來像這樣:

V1是犯2合併,v2是從提交5合併等

[發行]:

  • V2
  • V1

[主]:

  • 提交5
  • 提交4
  • 提交3
  • 提交2
  • 初始

我是新與git很抱歉,如果這是真的很明顯! 謝謝!

+0

你怎麼樣「進一步合併」? – ellotheth

+0

爲什麼不只是將主版本合併到每個版本的版本中,並且使用'git merge --no-ff'來始終在版本分支中爲每個版本創建一個(合併)提交。 –

+0

@MattiasWadman,它確實創建了一個獨立的分支結構,但是當你推動代碼說Github時,以前的master提交仍然可見。 如果我創建釋放分支關閉初始,然後使用 'git merge --squash' 它確實工作,做我想要的,但它仍然不能自動合併。 – Nick

回答

2

如果你想要做的發佈分支的提交,將有完全相同的樹頂部提交的主分支,你可以這樣做:

# make sure we are on the release branch 
git checkout release 
# populate index and working tree with tree from top master commit 
git read-tree -u --reset master 
# commit it as "v1" 
git commit -m v1