あなたが望むことは、正確には不可能だと思います。しかし、これの結果はほぼ同じです:
git checkout D # checkout (step) to the D commit /this does not modify the master branch/
git branch develop # create develop branch, based on D
git checkout develop # now you stand on D commit
git push origin develop # push the new branch to repo, named origin
git checkout master # now you stand on E commit again
これは、開発ブランチを作成する方法です。どのブランチもコミットを指しています。または、これが好きな場合は、ブランチはコミット グラフ内のコミットの単なるエイリアスです。たとえば、コミット グラフで道路を考えることができますが、実際にはそうではないと思います。(コミットするときに作成されるコミット グラフの実際のエッジ (古いコミットと新しいコミットの間のエッジ)、または 2 つのコミットをマージするとき (新しいコミットと 2 つの「親」コミットの間のエッジ))
結果を参照してください。
git log --graph --decorate --pretty=oneline --abbrev-commit --all
A-B-C-D-E (master)
\-D (develop)
お役に立てれば幸いです。