2011-12-08 83 views
19

我通常會創建新的分支創建新的分支從開發混帳:從錯誤的分支

git checkout -b new-feature develop 

再經過最後一次提交我合併回開發

git checkout develop 
git merge new-feature 

但這次我創建new-feature2 BRACH從new-feature,現在我不能合併到develop

有沒有辦法將new-feature2的父母切換到develop

(我在工作中的文件是相同的版本在develop所以這不應該要求合併。)

回答

4

有關創建補丁,結賬到develop分支和應用補丁呢?

git checkout new-feature2 

git format-patch new-feature 

git checkout develop 

git am name-of-the-patch.patch 
+0

聽起來不錯,命令會是什麼? – hakunin

+0

太棒了,不知道git補丁是如此容易,謝謝! – hakunin

1

你也可以使用git diffgit apply

git diff new-feature..new-feature2 | git apply - 
+0

感謝您提供替代解決方案! – hakunin

26

你可以變基的功能轉移到主基地:

git checkout new-feature2 
git rebase --onto develop new-feature new-feature2 
# rebase the stuff from new-feature to new-feature2 onto develop branch 

或做 '手動' 用櫻桃挑

git checkout develop 
git log --oneline new-feature..new-feature2 
# for every commit call: 
git cherry-pick <commit-id> # note, newer versions of cherry-pick allow multiple commits at once 
+0

我已經解決了修補問題,但是這聽起來更像我正在尋找的東西。感謝包括這些命令,這將有助於讀者。 (PS:請注意,我想重新分配的分支是'develop',例如「maser」。) – hakunin

+0

我改變了這個例子,謝謝你指出了hakunin。 – reto

+0

拯救生命....(好吧,無論如何救了我一點時間!!!) –

3

你見過互動式底座嗎?

git rebase -i develop 

是一個非常簡單的解決方案 - 它會顯示你從該分支的所有提交。只需刪除不需要的分支中的「挑選」行。

+0

聽起來不錯,謝謝加入! – hakunin