2012-02-13 17 views
1

私はローカルリポジトリを持っています。それをAとしましょう。gitで失われたコミットを復元する

A私は復元したいLOST_FOUNDをたくさん持っています。 上記のコミットを復元するには、どのような(そして最も危険な)方法が最適でしょうか?私は本当に彼らが失われている理由、私は正直に私が-kinda操作「の日に家に帰る、コミット」シンプルにやっていたと思ったが、どうやらそれは何か他のものになったと言うことはできません

(。

EDITは:でgit branch foundit LOST_FOUND_N結果を行う

error: Object #SHA1 is a blob, not a commit 
fatal: Not a valid branch point: `LOST_FOUND_N`. 

#SHA1は、よく、 SHA1、および NLOST_FOUNDの数です) 210

EDIT 2: LOST_FOUND_-filesでgit showを実行すると、それらは大部分が失われたファイルにマップされていることがわかります(ただし、それらのすべてが同じコミットに属するとは限りません。私が毎回コミットしたことを正確に覚えていない)、あるいは同じブランチであっても)。

+0

私はあなたが有益な応答を得るために、より詳細な情報を共有するべきだと思います。どのようにしてこれらのコミットを失ったのですか?あなたはローカルのリポジトリまたはリモートのリポジトリでそれらを失ったのですか? –

+0

ああ、応答のおかげで、何を含めるべきか完全にはわからなかった。 リポジトリはローカルなものですが、私はめったにプロダクションコード以外はプッシュしません。私がそれらを失った方法については、それは数日前から大きな謎です。 –

+0

しかし、基本的に、私は単純な "コミット、今日の家に帰る"と思っていましたが、明らかに私は何か他のことをしました。 –

答えて

0

私は先に行くと、これを自分自身にお答えします:この答えは普遍的なが解決バイ魔術この質問に対する特定、およびでないこと

注:

  1. でファイルを検査
    git show FILE
  2. ファイル、そうのようなパイプそれを認識:
    git show FILE > FILENAME
を10

これは、ディレクトリの構造ではなく、見つけたファイルの内容をに与えることに注意してください。

私は私の.bashrcに次の別名を持っている
4

:それは、コマンドgitkallを作る

alias gitkall='git fsck --lost-found | awk "{ print \$3 ; }" | xargs gitk --all' 

、リポジトリ内のすべてのリビジョンを示し、履歴編集など

から残っているものを含みますgitk GUIから

、それは面白い失われたリビジョンにタグ付けするのは簡単で直感的ですが、新しい枝を作るなど

関連する問題