我爲我的項目使用git-flow,並且在開發分支中開始了一組相當複雜的更改,這似乎比我預期的要長。將develop分支中所做的修改移動到新的git-flow特性分支中?
我希望我在功能分支中完成了這項工作,因爲我想用其他更改制作新版本。如何將這些未提交的更改移動到新的git-flow功能分支中?
我爲我的項目使用git-flow,並且在開發分支中開始了一組相當複雜的更改,這似乎比我預期的要長。將develop分支中所做的修改移動到新的git-flow特性分支中?
我希望我在功能分支中完成了這項工作,因爲我想用其他更改制作新版本。如何將這些未提交的更改移動到新的git-flow功能分支中?
如果你做了沒有提交
如果你只是有一個骯髒的工作拷貝,只是像你即將開始一個新的功能:
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
下面是做這件事:
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
而且應該這樣做。
我不知道該功能可能在未提交更改後啓動。謝謝! – plang