まあ、それは面倒ですが、あなたのコミットはおそらくまだそこにあるでしょう...</p>
実行git fsck --full
(時間がかかる場合があります) – すべてのダングリング BLOB/ツリー/コミットが一覧表示されます。git log
/ git show
/で各危険なコミットを検査しますgitk
。ブランチのヘッド コミットを見つけたら、ブランチを再作成しgit branch <branchname> <sha1 of commit>
ます (古いブランチ名を覚えておく必要があります)。
Time Machine を使用して古いリポジトリの状態を復元し、古いリポジトリがデスクトップにあるため、最も簡単なことは、新しいリモートを追加してから、リモート コミットを取得することです。
git remote add old-repo /path/to/your/desktop/old-dir/.git
# sorry, no clue what the actual path might be on mac systems (~/Desktop/…?)
git fetch old-repo
その後、古いリポジトリのすべてのブランチを として利用できるようになりますold-repo/branchname
。それらをマージするには、git merge old-repo/branch
コマンドを発行するだけです。これは、リポジトリを追加のリモートとしてセットアップし、その変更をマージするための単なる基本的な git fu です (ここでは魔法は行われません。先に進みます)。