我的 git-svn 工作流程如下:
生产代码进入 master,我在 master 中执行 git svn dcommits/rebase。我在功能/主题分支上工作,并继续 rebase -i 到 master 和 merge,直到我准备好将它们带入 master 并随后使用 dcommit 推送到 svn trunk。
我通常git checkout -
可以检查我所在的上一个分支。
但是由于某种原因,当我这样做时git svn rebase
,然后尝试 git checkout 到我以前的分支,它不起作用(它只是停留在 master 中)。也就是说,假设我这样做:
(master)$ git checkout -b my-feature-branch
我在那个分支上做了一些工作,然后提交
(my-feature-branch)$ git commit -am "Some work"
然后我想引入最新的更改,并快速更改回我的分支:
(my-feature-branch)$ git checkout master
(master)$ git svn rebase
这会将最新的 svn trunk 更改带入 master。现在我只想快速切换回我的主题分支。
(master)$ git checkout -
此时,分支结帐保持为主。我猜某种操作正在从我工作的最后一个分支中弹出,但我不知道内部结构以确定这一点。
所以我的问题是,有人知道这是为什么吗?