460

で必要ないくつかの実験的な変更を加えて、間違ったブランチを削除しましたgit branch -D branchName

ブランチを回復するにはどうすればよいですか?

4

10 に答える 10

854

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
于 2010-10-26T16:57:06.663 に答える
75

ブランチの最後のSHA1がわかっている場合は、試すことができます

git branch branchName <SHA1>

git reflogSHA1は、ソリューション--defectlink--で説明されているを使用して見つけることができます。

于 2010-10-26T16:55:04.770 に答える
42

まだ削除をプッシュしていない場合は、次のようにすることができます。

$ git checkout deletedBranchName
于 2014-01-14T16:07:04.107 に答える
39

ブランチを削除したばかりの場合は、ターミナルに次のようなものが表示されます。

Deleted branch branch_name(was e562d13)
  • ここで、e562d13は一意のID(別名「SHA」または「ハッシュ」)であり、これを使用して、削除されたブランチを復元できます。

ブランチを復元するには、次を使用します。

git checkout -b <branch_name> <sha>

git checkout -b branch_name e562d13 
于 2016-08-19T11:45:22.727 に答える
21

次の手順を実行します:

1:入力:

git reflog show 

これにより、すべてのコミット履歴が表示されます。取得する最後のコミットがあるsha-1を選択する必要があります

2:選択したSha-1 IDでブランチ名を作成します。例:8c87714

git branch your-branch-name 8c87714
于 2020-03-11T18:36:18.630 に答える
9

まず、.gitディレクトリを含むディレクトリ全体をバックアップします。

2番目:git fsck --lost-found失われたコミットのIDを取得するために使用できます。

3番目:失われたコミットにリベースまたはマージします。

4番目:gitで-Dまたは--forceを使用する前に、常によく考えてください:)

この種のエラーから回復する方法についてのこの良い議論を読むこともできます。

編集:ちなみに、実行しないでくださいgit gc(または、単独で実行することを許可してください-つまり、実行しないでgit fetchください)。そうしないと、コミットが永久に失われる可能性があります。

于 2010-10-26T16:57:44.247 に答える
5

おかげで、これはうまくいきました。

git branch new_branch_namesha1

git checkout new_branch_name

//古いブランチにある古いチェックインされたファイルを見ることができます

于 2017-02-07T16:00:17.017 に答える
2

これは私のために働いた:

git fsck --full --no-reflogs --unreachable --lost-found
git show d6e883ff45be514397dcb641c5a914f40b938c86
git branch helpme 15e521b0f716269718bb4e4edc81442a6c11c139
于 2020-04-15T07:54:55.090 に答える
2

を介してブランチを削除した場合はSource Tree、に移動すると、削除されたブランチのSHA1を簡単に見つけることができますView -> Show Command History

次の形式にする必要があります。

Deleting branch ...
...
Deleted branch %NAME% (was %SHA1%)
...

次に、元の答えに従ってください。

git branch branchName <sha1>

于 2021-02-25T15:04:24.410 に答える
0

Jetbrains IDE(Goland、phpstormなど)のGUIを使用してブランチを削除した場合

に行く

git windows(left-down corner of IDE)-> console tab->これで、IDEによって実行されたコマンドのログを確認し、このログからブランチ名とSHA1を見つけることができます。

于 2021-12-09T16:27:42.123 に答える