github でリモートで削除されたブランチを復元する方法があるかどうか疑問に思っていました。履歴は明らかにブランチの記録を保持し、他のブランチとマージしますが、削除されたブランチを復元できるかどうかはわかりません。
ありがとう。
github でリモートで削除されたブランチを復元する方法があるかどうか疑問に思っていました。履歴は明らかにブランチの記録を保持し、他のブランチとマージしますが、削除されたブランチを復元できるかどうかはわかりません。
ありがとう。
はい、gitから削除されたブランチを復元することは可能です。
過去30日以内にローカルのgitリポジトリにブランチがあった場合は、次を使用してreflogでブランチを見つけることができる場合があります。
git reflog
reflogでブランチ名を検索し、HEAD{x}
ポイントまたはコミットIDをメモします。
git checkout -b branch_name HEAD@{27}
コミットIDをチェックアウトし、そのコミットポイントからブランチを作成できます。
git checkout -b branch_name <commit id>
reflog
GitHub のサポートを依頼して、リモート リポジトリを調べてもらうことができます (たとえば、このスレッドのように)。
これが削除から十分に近い場合 (デフォルトで 30 日未満)、reflog には、ブランチによって参照されなくなったコミットがまだ含まれています。
これらのコミットの 1 つにブランチを作成すると、再びアクセスできるようになります。
reflog の詳細については、「 reflog とは何か、なぜそれほど重要なのか」を参照してください。
更新:リポジトリの所有者は、GitHub EVents API にクエリを実行することもできます: 「 GitHub はコミット ID を記憶していますか?」を
参照してください。
github イベントのこの python スクリプトを見てください。 https://github.com/jimzucker/githubutils/blob/master/githubreflog.py
イベントをプルして読み取り可能にするために作成しました。それをgrepにパイプして、興味のあるブランチを探すことができます。十分な履歴がある場合、問題のブランチの削除イベントが表示され、次の行が最後のプッシュ イベントであり、それが関心のある社です。