![](/img/trans.png)
[英]Move modifications made in develop branch into a new git-flow feature branch?
[英]Move develop changes to a new feature branch
对于我的项目,我使用git-flow 。 我master
并develop
与remote-repo同步的分支通常对于所有更改我创建一个feature
分支,编辑文件,在feature
分支上提交更改并通过develop
的合并关闭分支。
但有时我忘了创建一个feature
分支,我直接在develop
编辑文件。 如何在新feature
分支中移动canges?
如果您已经提交了develop
,那么您的历史记录如下:
A---B---C---D develop
在这里, C
是最后的正确提交关于develop
和D
应该一直致力于特性分支。 执行以下操作(在develop
):
git branch feature # creates feature branch pointing at D
git reset --hard C # or HEAD^, HEAD~1, etc - resets develop back to C
这将导致:
A---B---C develop
\
D feature
如果您进行了多次提交,这也可以正常工作,因为您可以用第二个命令替换需要重置develop
提交引用。
值得注意的是, reset --hard
将丢弃任何未提交的更改。 我总是建议只使用干净的工作树来操作提交历史记录,但为了避免这种情况,您可以使用不同的重置模式,如--merge
,只要您未提交的更改不是C...D
更改的任何文件,就会允许重置C...D
您可以使用git stash将更改添加到新分支,请参阅git book
所以在master中,在你做了更改之后(但没有添加或提交它们)你可以这样做:
git stash //stashes the changes
git stash branch featurebranchname //creates a new branch and applies the stash to it
假设您已经在本地提交了这些更改但尚未推送,则可以使用软重置:
git reset --soft HEAD~1
git checkout feature
git commit
只需将git reset --soft HEAD~1
的1 git reset --soft HEAD~1
替换为要复位的提交数。
您可以选择更改新分支。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.