2

添付のスクリーンショットは、私が何を意味するかを示しています。2012年7月12日から2013年2月2日GUIツールを使用して、これら2つの日付の間にすべての作業を失い、それらを回復する方法がわかりません。誰か助けてもらえますか?

Gitログ

commit eb64161f29fff57ab861880c4cd1cdf7641c39bf
Author: unknown <DIAMONS@DIAMONS-PC.(none)>
Date:   Fri Dec 7 02:00:10 2012 -0500

A

commit e7850a9c4218b8853b95fff72b08d81c9de1a493
Author: unknown <DIAMONS@DIAMONS-PC.(none)>
Date:   Fri Dec 7 01:59:09 2012 -0500

A

commit 76c81938af7ec183a306e5377ad503b84371dbc7
Author: unknown <DIAMONS@DIAMONS-PC.(none)>
Date:   Fri Dec 7 01:57:27 2012 -0500

A

commit a98041150974116addf1edb867c3481140a16633
Author: unknown <DIAMONS@DIAMONS-PC.(none)>
Date:   Fri Dec 7 01:56:23 2012 -0500

A

Git Reflog

eb64161 HEAD@{0}: checkout: moving from fe2772d3a363fc7ca348d936bd3a5ac97ccf9dc2
fe2772d HEAD@{1}: checkout: moving from 096491742d37c885ed93db2bb06b3fbe65b69499
0964917 HEAD@{2}: checkout: moving from 6eb9a8e66561d2e72b8391fec823df6d6999cceb
6eb9a8e HEAD@{3}: checkout: moving from master to 6eb9a8e
eb64161 HEAD@{4}: checkout: moving from 4d6a18311433a9bee737eda9bf6114f8bc35fa2c
4d6a183 HEAD@{5}: checkout: moving from 13a4a7e00c15986e07c48969f026afb2fe02f60b
13a4a7e HEAD@{6}: checkout: moving from 4374fecebf215eb868beb881af8909922d45e764
4374fec HEAD@{7}: checkout: moving from 49f004a3d08ee52ee24334c07fc9d35c40480dbb
49f004a HEAD@{8}: checkout: moving from 8e58a900f13132e0dcaa39ae980f7868184cbf65
8e58a90 HEAD@{9}: checkout: moving from 60299f452350c05d22e6bd703f1a7658112c171f
60299f4 HEAD@{10}: checkout: moving from 7e1ae4e7907f446d7d238741933509d4d64e071
7e1ae4e HEAD@{11}: checkout: moving from bec6e9bab96300e4a5d11b5fb1f381659bffe16
bec6e9b HEAD@{12}: checkout: moving from 60299f452350c05d22e6bd703f1a7658112c171
60299f4 HEAD@{13}: checkout: moving from 4d6a18311433a9bee737eda9bf6114f8bc35fa2
4d6a183 HEAD@{14}: checkout: moving from eb64161f29fff57ab861880c4cd1cdf7641c39b
eb64161 HEAD@{15}: checkout: moving from master to eb64161
eb64161 HEAD@{16}: checkout: moving from 4d6a18311433a9bee737eda9bf6114f8bc35fa2
4d6a183 HEAD@{17}: checkout: moving from master to HEAD@{3}
eb64161 HEAD@{18}: checkout: moving from eb64161f29fff57ab861880c4cd1cdf7641c39b
eb64161 HEAD@{19}: checkout: moving from master to master@{2013-01-19}
eb64161 HEAD@{20}: pull: Fast-forward
4d6a183 HEAD@{21}: checkout: moving from 7e1ae4e7907f446d7d238741933509d4d64e071
7e1ae4e HEAD@{22}: checkout: moving from 60299f452350c05d22e6bd703f1a7658112c171
60299f4 HEAD@{23}: checkout: moving from 8e58a900f13132e0dcaa39ae980f7868184cbf6
4

1 に答える 1

1

Gitはコミットやその他のオブジェクトを即座に削除しません。したがって、データがコミットされている場合は、最後の適切なコミットを確認することでデータを取得できます。

投稿したreflogをウォークスルーし、各バージョンをチェックアウトします(最新のものから始まります)。遅かれ早かれ、あなたはあなたのデータで良いバージョンを見つけるでしょう。次に、そのコミットをブランチとしてマークします(git checkout HASH -b my-lost-master)。

編集1:

もう1つのオプションはgit fsck --lost-found、reflogと同じ方法で実行し、出力を確認することです。

編集2:

さらに別のレスキューツールはこれです:

git rev-list --objects --all \
| awk '{cmd="git cat-file -t "$1;cmd |& getline t; printf("%s %-7s %s\n", $1, t, $2); close(cmd);}' \
| less

gitオブジェクトストレージ全体をスキャンし、そこにすべてを記述します。その長いリストのどこかにファイルが表示されるはずです。

于 2013-02-05T20:45:31.227 に答える