まず、私はその後、私はバーにFooクラスのインスタンスの名前を変更するファイルを編集し、分岐コミットするために省略した直後にダングリングコミットをリカバリする方法を教えてください。
> git checkout -b renaming-Foo-to-Bar
をチェックアウト。その後
> git add -u
は、今私はgit commit -m "renamed Foo to Bar"
を実行するために省略します。
私がコミットしたと考えて、ブランチをマスターにマージします。
> git checkout master
> git merge renaming-Foo-to-Bar
それは私が私が私がコミットしていなかったことを実現し、マージメッセージ(ソート「マージする何もない」のようなもの) を読ん後にのみです。
IIUCは、私は今、いわゆる「コミットぶら下がり」を持っている、と
> git fsck --lost-found
Checking object directories: 100% (256/256), done.
dangling blob 03c044a..cb
dangling commit ab8076f..47
dangling commit 128532d..99
dangling commit 5605e2d..4a
を実行して、私はそれを回復することができます。しかし、dangling commit
とdangling blob
メッセージにタイムスタンプやその他の識別情報は付いていません。
どのようにこのようなぶら下がりコミットを回復しますか?最初の数と最後の数シャス上
> git fsck --lost-found | wc
Checking object directories: 100% (256/256), done.
52 142 2806
Runninggit show 03c044a..cb
私の歴史の中で深い変化はなく、最近のものを明らかにする:
dangling commits/blobs
は多いです。
'git cat-file -p SHA1'は便利ですが、セパレータやタイムスタンプではなく、出力するファイルのパス/ファイル名を表示しません。複数の言語が1つの出力で一緒にスローされます。 – Calaf
パスとファイル名は、ステージング時に作成されないツリーオブジェクトに格納されます。それがgitが動作する方法です。だからあなたは良くないでしょう!あなたは 'コミット'オブジェクトから始まり、 'ツリー'から始まり、 'ブロブ'で終わる同じコマンドを使うことができます。 >複数の言語が1つの出力で一緒にスローされます。ありえない。 1つの 'blob' Sha1 = 1ファイルのコンテンツのバージョン。 – Philippe