3

コミットを試みたときにGithubforWindowsが爆撃されましたが、git(コマンドライン)からすべてのファイルが新しいと表示されます。サイズが53MBの.getフォルダーがまだあります。これまでに約60から100のコミットを行いました。

履歴や変更を失うことなく、作業コピーを復元するにはどうすればよいですか?

Gitステータスによると:

ブランチマスターについて

初期コミット

コミットする変更:(
「gitrm--cached...」を使用してステージングを解除します)

新しいファイル:.gitattributes
新しいファイル:.gitignore
...(さらに1620ファイル)

コミット用にステージングされていない変更:(コミット
される内容を更新するには「gitadd...」を
使用)(作業ディレクトリの変更を破棄するには「gitcheckout --...」を使用)

変更:Src / Foo / Bar / Index.cshtml

追跡されていないファイル:(
コミットされるものに含めるには「gitadd...」を使用してください)

PoshGitコマンドプロンプトは次のようになります

C:\ Projects \ Foo[マスター+1623〜0 -0 | + 0〜1 -0]>

からの出力git logは次のとおりです

C:\ Projects \ Foo[マスター+1623〜0 -0 | +1〜1 -0!]> git log
fatal:デフォルトのリビジョンが正しくありません'HEAD'

アップデート

Git GUIから「VerifyDatabase」を実行したところ、次のようになりました。

胎児の枝にHEADポイント(マスター)の通知:いいえデフォルトの参照cd8bc69ad56ca5c4d51d0d5028525698158cf3ecダングリングコミットぶら下がり30855e0deee8600f10733e6760db54fee2570a38をコミットぶら下がりダングリングツリー4b825dc642cb6eb9a060e54bf8d69288fbee4904はc934f9823d907cd69c5e08a0159b9de4dfe3da35ダングリングがf958caca247978db978b70460276b5da7582bb06通知をコミットコミット

4

2 に答える 2

2

わかりました、最初に、私は自分の作業コピーを複製したので、私は常にフォールバックポジションを持っていました。次に実行git fsckすると、次の出力が得られました。

> dangling tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904 dangling commit
> 30855e0deee8600f10733e6760db54fee2570a38 dangling commit
> cd8bc69ad56ca5c4d51d0d5028525698158cf3ec dangling commit
> c934f9823d907cd69c5e08a0159b9de4dfe3da35 dangling commit
> f958caca247978db978b70460276b5da7582bb06 notice: HEAD points to an
> unborn branch (master) notice: No default references

ここから、

git checkout <some-hash>

上記のぶら下がっているコミットのハッシュを処理します。結局、最後のぶら下がっているコミットは私の最新のコミットだったのでgit checkout c934f9823d907cd69c5e08a0159b9de4dfe3da35、クラッシュする前に作業コピーに戻してくれました。

ここからgit checkout -b master、このコミットでマスターブランチを再作成しました。git statusこれで、1つの変更が表示されます。これは、私が行おうとしていたコミットです。それをコミットすることで、私は軌道に戻ることができます。

于 2012-10-22T08:19:38.063 に答える
1

まず第一に:慌てる必要はありません。作業フォルダを含むプロジェクトのバックアップを作成します。うーん...実際には、2つ作ってください:)

サイズが53MBの.gitフォルダーがまだあります。

Gitはかなり回復力のあるツールです。オブジェクトデータベースの分析により、履歴が「再構築」される可能性があります。

Moreovoer、GHfWは、リポジトリとのやり取りのほとんどをログに記録します。簡単に言えば、GHfWチームがあなたのレポを救助するのを助けるかもしれないという良いチャンスがあります。

発表ブログ投稿で述べられているように

Twitterのすべての言及を必ず読んでください。バグを見つけた場合は、support@github.comに送信してください。すべての電子メールは実在の人物によって読み取られます。

彼らにメールを送ってください。のように。

于 2012-10-21T19:36:03.157 に答える