1

そのため、初期化したばかりのローカル リポジトリにリモートの空のリポジトリを追加し、ローカルの変更をコミットする前にプルするというミスを犯しました。

git init
git remote add origin <URL>
git add *
git pull origin master

git が空のリポジトリをローカルのリポジトリに書き込んだため、すべてのファイルが削除されました。

通常、プルするときに、コミットが必要なステージングされていないローカル変更がある場合、git はマージを拒否しました。これが最初のコミットと違うことに驚いています。

git logローカルの変更をコミットしたことがないため、最初のコミットのみが表示されるため、 を使用してプルを元に戻すことはできませんgit reset --hard。ファイルを復元する方法はありますか。

4

2 に答える 2

5

上記のワークフローから判断すると、ファイルをステージングしたようです。これにより、ぶら下がっているブロブがいくつか残り、回復できるはずです。

git fsck --lost-found

これにより、変更が .git/lost-found 内のファイルにコミットされます。そこに何かが現れるかもしれません。

さらなる議論: git pull 後にファイルを回復する、git reset --hard HEAD^ を実行した後に追加されたファイルを回復する

于 2013-02-04T15:54:35.920 に答える
-1

失われた変更がコミットされていない場合、git はそれらを認識せず、復元できません。作業ディレクトリの状態を変更する可能性のあるアクションを実行する前に、コミットされていない変更を常にコミットまたは隠してください。

于 2013-02-04T15:52:18.407 に答える