2012-05-22 42 views

回答

17

如果你做了沒有提交

如果你只是有一個骯髒的工作拷貝,只是像你即將開始一個新的功能:

git flow feature start awesomeness 
git commit -va 

如果進行一些提交

如果在您的功能分支中有應該在開發中的提交,則上面的st eps是一樣的。此外,雖然你會(可能 - 這不是必需的)要回重置您的開發分支的地方是你開始提交您的特性分支的變化,你可以用做前:

git flow feature start awesomeness 
git commit -va 
git checkout develop 
git reset origin/develop --hard 
+0

我不知道該功能可能在未提交更改後啓動。謝謝! – plang

2

下面是做這件事:

git checkout where-you-should-have-made-your-feature-branch 
git branch feature-branch 
git checkout feature-branch 
foreach commit in commits-that-should-have-been-on-your-feature-branch: 
    # do this for each commit in chronological order 
    git cherry-pick commit 

現在,它取決於你是否已經被推您的開發分支到公共庫與否。如果一切仍是私有的,你想改寫歷史:

git checkout develop-branch 
foreach commit in commits-that-should-have-been-on-your-feature-branch: 
    # do this for each commit in reverse chronological order 
    git rebase --onto commit~1 commit develop-branch 

如果你不希望改寫歷史:

git checkout develop-branch 
foreach commit in commits-that-should-have-been-on-your-feature-branch: 
    # do this for each commit in reverse chronological order 
    git revert commit 

而且應該這樣做。

+0

混帳在一個循環中重新編碼似乎有點不必要/笨拙 - 這裏有什麼想法? – AD7six

+0

嗨,謝謝你的回答,但是還沒有提交。解決方案比這更容易。 – plang

相關問題