2011-08-28 63 views
1

背景:我有一個實驗分支crazy-idea,我在專門的子目錄madness/{src,docs}中做了一些狂野的事情。大量的提交,包括筆記,圖片,哈克腳本來創建劇情。現在我已經完全明白自己在做什麼了,現在可以通過添加新功能並修改現有源文件來編輯src/中的實際源文件。從分支櫻桃採摘可能會導致將此分支重新分配給主

由於在crazy-idea混亂將混亂主人的歷史,一個新的分支good-idea被創建合併到src/變化到主。說服我建議我改變src/中的文件仍然在crazy-idea,然後從good-idea中挑選提交。

現在我的問題:鑑於good-idea已合併到master中,並且在此事件發生後,一些提交在master中完成。當我回到crazy-idea進一步強化我的想法的一些其他方面時,難道預計在src/,而重新掌握?

另一種方法是將src/單獨留在crazy-idea以內,製作子目錄的副本並以這種方式查看我的筆記,同時直接在good-idea中進行編碼。

你們認爲更聰明的是什麼?

編輯嗯,我預計在

git rebase master 

crazy-idea了衝突。將來我只會在一個分支中介紹變化,並且只有在我知道它已經被放棄時才使用櫻桃採摘。

編輯我解決了我的情況如下: 已經有n,其中在src/變化承諾。可以說最後一個非src/更改提交有消息'foobar'。亞基失敗後:

$ git rebase --abort 
$ git reset --hard HEAD^ 
HEAD is now at ... 
# more hard resets, I think actually N 
HEAD is now at ... foobar 
$ git rebase master 
First, rewinding head to replay your work on top of it... 
Applying .. 
... 

完成。這顯然不像我所希望的那麼直截了當,但也不算太壞。我想我會走這條路線而不是複製madness/

回答

2

Git應該沒有很多麻煩協調櫻桃選擇。當重新綁定時,Git會忽略任何提交(甚至在提交的diff中的區塊)引入已經在目標分支上引入的更改。

+0

不錯。我的猜測/希望是git忽略從哪裏來,只是在重新綁定時看內容。順便說一句,你有沒有用我描述過的方式來使用git,或者你確信它能夠很好地應對。 –

+0

我已經做了一些非常複雜的rebases,並且我已經看到它正確地刪除了已經集成的整個提交。 – cdhowie

+0

聽起來很棒。我會繼續,並在一兩天內將您的答案標記出來:P謝謝! –