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>
ソリューション here で説明されているgit reflog
を使用してSHA1を見つけることができます。
削除をまだプッシュしていない場合は、次の操作を実行できます。
$ git checkout deletedBranchName
ブランチを削除したばかりの場合、ターミナルに次のようなものが表示されます。
Deleted branch branch_name(was e562d13)
- ここで、e562d13は一意のID(別名「SHA」または「ハッシュ」)です。これにより、削除されたブランチを復元できます。
ブランチを復元するには、次を使用します。
git checkout -b <branch_name> <sha>
例:
git checkout -b branch_name e562d13
おかげで、これはうまくいきました。
gitブランチnew_branch_name
sha1
git checkout new_branch_name
//古いブランチの古いチェックインファイルを見ることができます
最初:.gitディレクトリを含むディレクトリ全体をバックアップします。
2番目:git fsck --lost-found
を使用して、失われたコミットのIDを取得できます。
3番目:失われたコミットにリベースまたはマージします。
4番目:-Dまたは--forceをgitで使用する前に、常によく考えてください:)
この良い議論を読んでください この種のエラーから回復する方法も。
編集:ところで、git gc
を実行しないでください(または、単独で実行することを許可しない-つまり、git fetch
などを実行しないでください)。