回答に飛びつく前に、この混乱を注意深く読んでください!
問題:
- 私はプロジェクトに取り組んでいます(バージョン管理にgitを使用しています)。
- タグ v2.x を作成し、リモートの originにプッシュしました。
- このリモート オリジンは、1.x シリーズではタグを持たないプライベート ミラーです。理由- v2.x でゼロからコーディングを開始したため、1.x は歴史的な理由のみで維持されています。
- これを知らずに、公開の github リポジトリに別のリモートを追加しました。
- 最新のタグとコミットを github にミラーリングしようと思いました (私は唯一の開発者なので、わざわざマージしませんでした!)
私が使用した:
git push --mirror
そして、Github から 1.x シリーズのすべてのタグを削除しました!
現在の状況:
- 私はたくさんグーグルで検索し、gitのマニュアルを読みました。git reflog/reset/rebase を実行しようとしましたが、何も復元できませんでした。
- 私のローカル環境。2.x でゼロから始めたので、タグ 1.x に関連するコミットはありません
- これまでのところ何も回復できていませんが、Github でリモート コミットが見られます。例: https://github.com/rtCamp/buddypress-media/commit/4614fcdacfbe21dae88e50e66707ef57b786ee37
つまり、データはリモートに存在します...
うまくいくかもしれないもの:
ローカルで削除された「コミット」に関するログを含むすべてのログで Github リポジトリを複製できる場合、「ローカル」でもコミットが削除されます。その後は git reflog/rebase/reset の演習かもしれません。
リモート git は完全なレポ自体であり、SHA1 ハッシュによるコミットを表示しているため、「リモート」で git reflog/rebase/reset を実行できれば、理論上はうまくいくと思います。
私は純粋なgitの方法を探していることに注意してください。手動で「タグ」(zip) をダウンロードし、SVN から復元できます (1.x では SVN を使用していました)。
あなたの提案/回避策を教えてください。