で必要ないくつかの実験的な変更を加えて、間違ったブランチを削除しました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
ブランチの最後のSHA1がわかっている場合は、試すことができます
git branch branchName <SHA1>
git reflog
SHA1は、ソリューション--defectlink--で説明されているを使用して見つけることができます。
まだ削除をプッシュしていない場合は、次のようにすることができます。
$ git checkout deletedBranchName
ブランチを削除したばかりの場合は、ターミナルに次のようなものが表示されます。
Deleted branch branch_name(was e562d13)
- ここで、e562d13は一意のID(別名「SHA」または「ハッシュ」)であり、これを使用して、削除されたブランチを復元できます。
ブランチを復元するには、次を使用します。
git checkout -b <branch_name> <sha>
例:
git checkout -b branch_name e562d13
次の手順を実行します:
1:入力:
git reflog show
これにより、すべてのコミット履歴が表示されます。取得する最後のコミットがあるsha-1を選択する必要があります
2:選択したSha-1 IDでブランチ名を作成します。例:8c87714
git branch your-branch-name 8c87714
まず、.gitディレクトリを含むディレクトリ全体をバックアップします。
2番目:git fsck --lost-found
失われたコミットのIDを取得するために使用できます。
3番目:失われたコミットにリベースまたはマージします。
4番目:gitで-Dまたは--forceを使用する前に、常によく考えてください:)
この種のエラーから回復する方法についてのこの良い議論を読むこともできます。
編集:ちなみに、実行しないでくださいgit gc
(または、単独で実行することを許可してください-つまり、実行しないでgit fetch
ください)。そうしないと、コミットが永久に失われる可能性があります。
おかげで、これはうまくいきました。
git branch new_branch_name
sha1
git checkout new_branch_name
//古いブランチにある古いチェックインされたファイルを見ることができます
これは私のために働いた:
git fsck --full --no-reflogs --unreachable --lost-found
git show d6e883ff45be514397dcb641c5a914f40b938c86
git branch helpme 15e521b0f716269718bb4e4edc81442a6c11c139
を介してブランチを削除した場合はSource Tree
、に移動すると、削除されたブランチのSHA1を簡単に見つけることができますView -> Show Command History
。
次の形式にする必要があります。
Deleting branch ...
...
Deleted branch %NAME% (was %SHA1%)
...
次に、元の答えに従ってください。
git branch branchName <sha1>
Jetbrains IDE(Goland、phpstormなど)のGUIを使用してブランチを削除した場合
に行く
git windows(left-down corner of IDE)
-> console tab
->これで、IDEによって実行されたコマンドのログを確認し、このログからブランチ名とSHA1を見つけることができます。