私の git-svn ワークフローは次のとおりです。
本番コードは master に入り、そこから git svn dcommits/rebase を実行します。私は機能/トピックブランチに取り組んでおり、マスターにそれらを持ち込む準備が整うまで -i をマスターにリベースしてマージし続け、その後 dcommit を使用して svn トランクにプッシュします。
通常git checkout -
、以前のブランチをチェックアウトすることができます。
ただし、何らかの理由でgit svn rebase
、前のブランチに git checkout しようとすると、機能しません (マスターにとどまります)。つまり、私がそうしているとしましょう:
(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 トランクの変更が master に取り込まれます。ここで、すぐにトピック ブランチに戻りたいと思います。
(master)$ git checkout -
この時点で、ブランチ チェックアウトはマスターのままです。ある種の操作が、私が作業した最後のブランチから飛び出していると推測していますが、これを確実に知るための内部構造についてはわかりません。
だから私の質問は、これがなぜなのか誰か知っていますか?