で必要な実験的な変更を加えて、間違ったブランチを削除しましたgit branch -D branchName
。
ブランチを回復するにはどうすればよいですか?
で必要な実験的な変更を加えて、間違ったブランチを削除しましたgit branch -D branchName
。
ブランチを回復するにはどうすればよいですか?
回答:
git reflogを使用して、ブランチの最後のコミットのSHA1を見つけることができます。その時点から、次を使用してブランチを再作成できます
git branch branchName <sha1>
編集: @seagullJSが言うように、branch -D
コマンドはsha1を通知するので、まだターミナルを閉じていなければ、それは本当に簡単になります。たとえば、次の名前のブランチを削除してすぐに復元しmaster2
ます。
user@MY-PC /C/MyRepo (master)
$ git branch -D master2
Deleted branch master2 (was 130d7ba). <-- This is the SHA1 we need to restore it!
user@MY-PC /C/MyRepo (master)
$ git branch master2 130d7ba
git branch branchName origin/branchName
最初に、.gitディレクトリを含むディレクトリ全体をバックアップします。
2番目:を使用git fsck --lost-found
して、失われたコミットのIDを取得できます。
3番目:失われたコミットにリベースまたはマージします。
4番目:gitで-Dまたは--forceを使用する前に、常に2度考えてください。
この種のエラーから回復する方法についてのこの良い議論を読むこともできます。
編集:ちなみに、実行しないでくださいgit gc
(または、単独で実行できるようにします。つまり、実行しないgit fetch
か、または類似したものを実行します)。そうしないと、永久にコミットが失われる可能性があります。
ありがとう、これでうまくいきました。
gitブランチnew_branch_name
sha1
git checkout new_branch_name
//チェックインした古いファイルを古いブランチに表示できます