将develop分支中的修改移动到新的git-flow功能分支中?

时间:2012-05-22 15:15:54

标签: git git-flow

我正在为我的项目使用git-flow,并且已经在开发分支中启动了一组相当复杂的更改,这看起来比我预期的要长。

我希望我已经在功能分支中完成了这项工作,因为我想通过其他更改创建新版本。如何将这些未提交的更改移动到新的git-flow功能分支中?

2 个答案:

答案 0 :(得分:17)

如果您没有提交

如果你只是有一份肮脏的工作副本,就像你即将开始一项新功能一样:

git flow feature start awesomeness
git commit -va

如果 做了一些提交

如果您的功能分支中应该有开发提交,则上述步骤是相同的​​。此外,虽然您(可能 - 这不是必需的)想要将您的开发分支重置回您开始提交功能分支的更改之前的位置,您可以执行以下操作:

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

答案 1 :(得分: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

那应该这样做。