3

我知道,例如,当您启动一个功能分支时,您输入 git flow feature start [] 并且如果您想完成一个分支,您输入 git flow feature finish 。

但是当你完成一个分支时,它会将它与开发合并并自动删除该分支。我如何检索该分支?

4

3 回答 3

2

如果您只是这样做,该功能将是当前提交(合并提交)的第二个父级。您可以使用重新创建分支

 git branch my-feature HEAD^2

一次性创建并检查

 git checkout -b my-feature HEAD^2

如果已经有一段时间了,它可能不是当前提交的第二个父级。利用

 gitk 

或者

git log --graph --oneline

找到该分支完成的位置并使用 HASH 或 tree-ish 重新创建它。如果您保证合并消息是默认消息,则可以

git branch my-feature $(git log -1 --format=%H --grep="merge branch 'my-feature'")^2
于 2012-08-19T18:42:06.077 回答
1

在 git 中,分支实际上只是指向提交的指针。尽管您不能在删除后“检索”一个分支,但您可以创建一个指向与已删除分支相同的提交的新分支。

一种方法是使用gitk --all. 然后你只需执行

 git checkout -b [branch name] [sha1 of your commit] 
于 2012-08-19T18:39:08.650 回答
0

唯一的方法是撤消分支合并。

在这里看看接受的anwser => CLICK ME!!!

这些步骤应该可以解决问题:

获取所需的 sha:

git log

<sha1>是在合并之前的
<sha2>提交是在您开始开发该功能之前的最后一次提交

git checkout develop
git checkout -b feature/<feature-name>
git reset <sha1> --hard
git checkout develop
git reset <sha2> --hard

推送您的功能分支。

于 2013-01-23T13:44:53.513 回答