たとえば、機能ブランチを開始するときに git flow feature start [] と入力し、ブランチを終了する場合は git flow feature finish と入力することを知っています。
ただし、ブランチを終了すると、develop とマージされ、ブランチが自動的に削除されます。そのブランチを取得するにはどうすればよいですか?
これを行った場合、機能は現在のコミット (マージ コミット) の 2 番目の親になります。でブランチを再作成できます
git branch my-feature HEAD^2
作成して一度にチェックアウトする
git checkout -b my-feature HEAD^2
しばらく時間が経過している場合は、現在のコミットの 2 番目の親ではない可能性があります。使用する
gitk
また
git log --graph --oneline
そのブランチが終了した場所を見つけ、HASH またはツリーのようなものを使用してそれを再作成します。マージ メッセージがデフォルトのものであることが保証されている場合は、次のことができます。
git branch my-feature $(git log -1 --format=%H --grep="merge branch 'my-feature'")^2
git ブランチでは、実際にはコミットへのポインターにすぎません。削除されたブランチを「取得」することはできませんが、削除されたブランチと同じコミットを指す新しいブランチを作成できます。
1 つの方法は、そのコミットの SHA1 を取得することgitk --all
です。次に、実行するだけです
git checkout -b [branch name] [sha1 of your commit]
これを行う唯一の方法は、ブランチのマージを元に戻すことです。
ここで、承認された 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
機能ブランチをプッシュします。