3

によってオーバーライドされた変更を取得できないというgitの問題が発生していますgit pull

私はGitHubリポジトリなしでプロジェクトの作業を開始し、後でそれを作成しました。READMEリポジトリが作成されたときに、ファイルを含むリポジトリをフォークしました。

を使用してリポジトリをプッシュしたいファイルをローカルに追加しましたが、GitHubリポジトリから最初のファイルgit addをプルする必要があることに気付きました。README

プルした後、変更をプッシュしようとしましたが、代わりにメッセージが表示されEverything up-to-dateました。

コマンドを使用しlsて、で追加されたファイルgit addが削除され、に置き換えられていることを確認しましたREADME.md

これらは私が実行したコマンドです:
コマンド

を使用git logすると、でプロジェクトに取り組んでいる他の人が行ったコミットが表示されREADMEます。私がコミットをしていなかったことを考えると、それは予想されていたと思います。

使用git reflogすると、1回プルしたことがわかりましHEAD@{0}たが()、使用git reset --hard HEAD@{0}しても何も起こらなかったようです。私も試みgit reset --hard HEAD@{"20 minutes ago"}ましたが、ログが最初のプルに戻っただけであるという警告しか受け取りませんでした。

プルによって上書きされたコミットされていない変更を復元する方法はありますか?

編集

宿題をしなかったことをお詫びします。サイドバーにこの質問が重複していることに気づきました。Gitプルはコミットされていない変更を削除しました

cd .git/lost-found/other変更を復元するために、lost-found()を使用します。

遺失物取扱所よりも簡単に変更を復元する方法はありますか?新しい質問だと思います。そうでない場合は、私が使用している方法で自分自身に答えます。

4

1 に答える 1

3

質問で述べたように、変更を復元するために使用した解決策は、git の lost-found を使用することでした。

cd .git/lost-found/other/はかつて、ファイルがどこにあるかを遺失物保管所に連れて行きました。

ディレクトリ内の各ファイルを開いてその名前を確認し、正しい名前の正しいディレクトリに移動しました。

以前git addは変更を追加してコミットしていたので、もう失われることはありません。

于 2013-02-15T04:25:11.633 に答える