61

github でリモートで削除されたブランチを復元する方法があるかどうか疑問に思っていました。履歴は明らかにブランチの記録を保持し、他のブランチとマージしますが、削除されたブランチを復元できるかどうかはわかりません。

ありがとう。

4

6 に答える 6

69

はい、gitから削除されたブランチを復元することは可能です。

コミットIDを見つける:gitreflogを使用してブランチを検索します

過去30日以内にローカルのgitリポジトリにブランチがあった場合は、次を使用してreflogでブランチを見つけることができる場合があります。

git reflog

reflogでブランチ名を検索し、HEAD{x}ポイントまたはコミットIDをメモします。

ReflogHEADポイントからブランチを再作成します。

git checkout -b branch_name HEAD@{27}

コミットIDからブランチを再作成します。

コミットIDをチェックアウトし、そのコミットポイントからブランチを作成できます。

git checkout -b branch_name <commit id>
于 2011-01-12T22:09:28.943 に答える
13

reflogGitHub のサポートを依頼して、リモート リポジトリを調べてもらうことができます (たとえば、このスレッドのように)。
これが削除から十分に近い場合 (デフォルトで 30 日未満)、reflog には、ブランチによって参照されなくなったコミットがまだ含まれています。
これらのコミットの 1 つにブランチを作成すると、再びアクセスできるようになります。

reflog の詳細については、「 reflog とは何か、なぜそれほど重要なのか」を参照してください。


更新:リポジトリの所有者は、GitHub EVents API にクエリを実行することもできます: 「 GitHub はコミット ID を記憶していますか?」を
参照してください。

于 2011-01-12T22:00:18.830 に答える
1

github イベントのこの python スクリプトを見てください。 https://github.com/jimzucker/githubutils/blob/master/githubreflog.py

イベントをプルして読み取り可能にするために作成しました。それをgrepにパイプして、興味のあるブランチを探すことができます。十分な履歴がある場合、問題のブランチの削除イベントが表示され、次の行が最後のプッシュ イベントであり、それが関心のある社です。

于 2016-03-15T03:29:50.893 に答える