4

誤って、git ブランチの 1 つを削除してしまいました。それを回復する方法はありますか?

次のコマンドを使用しました。

$ git push :development

このブランチを回復したい。私は master ブランチにいますが、削除コマンドが実行されていることを示していません:

$ git reflog

1b716a1 HEAD@{0}: checkout: moving from master to origin
1b716a1 HEAD@{1}: reset: moving to origin
91791dc HEAD@{2}: reset: moving to 91791dc
1b716a1 HEAD@{3}: checkout: moving from master to master
1b716a1 HEAD@{4}: pull: Merge made by the 'recursive' strategy.
91791dc HEAD@{5}: commit: Fix Total Label crash
198de6f HEAD@{6}: commit: Fix the Total Label crash
4

2 に答える 2

8

リポジトリの別の (十分に最近の) クローンはありますか? または、他の誰かがあなたがアクセスできるクローンを持っていますか? (誰かが github でフォークしたのかもしれません)。その場合は、他のリポジトリからブランチをプッシュすることができ、すべてがうまくいくはずです。

そうしないと、事態は少し複雑になります。まず、development最近ブランチで作業した場合は、手動で reflog を期限切れにしない限り、HEAD reflog に表示する必要があります (デフォルトでは、30 日後に reflog エントリが期限切れになります)。

ブランチでローカルに作業したことがない場合 (IOW: チェックアウトまたはコミットなし)、それを取り戻す最後のチャンスがあります: 使用git fsck --unreachable --lost-foundして、報告されたすべてのコミット オブジェクトを調べます。正しいもの (古いヒント) を見つけたら、 を発行しgit branch development <hash of the commit>ます。ブランチをローカルに再作成した後、再度 GitHub にプッシュできます: git push origin development:development.

幸運を!

于 2012-09-15T13:54:20.247 に答える