1

最近の変更をあきらめて、プッシュされた最新のコミット (2de1222) に戻りたいです。

その時点で作業中 (ステージングされていない) のは 1 つのファイルだけでした。2de1222 以降、1 つのローカル コミットが行われました。別のウィンドウで gitk を作成して、各コミットの SHA と、含まれるファイルがどのように見えるかを確認できるようにしました。

最初に試してみgit reset 2de1222 --hardました。「致命的です。この操作は作業ツリーで実行する必要があります」というメッセージが表示されました。そこで、「git status」を実行すると、変更されたファイルが 1 つ表示されましたが、「コミットのためにステージングされていない変更」の下に、すべてアプリの一部であるファイルの長いリストがありました。ここの「gitk」は、移動したいコミットにいることを示しています。作業ディレクトリ内のターゲット ファイルは、コミット 2de1222 の場合と同じように見えます。

同様のメッセージに関する回答を検索し、次の提案を試みました。

git checkout master

git reset --soft HEAD@{1}

git reset HEAD [my_filename]

git pull origin master

git reset --hard 2de1222  (different argument order)

いずれの場合も、「git status」から同じ結果が得られ、「致命的: この操作は作業ツリーで実行する必要があります」という同じ警告が表示されました。なぜgitが一連の削除と思われるものをリストするのか、なぜ「作業ツリー」にいないのか、よくわかりません。

2de1222 コミットの直後 (「git status」にファイルが表示されない) と同じ状態に戻り、必要な 1 つのファイルを変更、テスト、およびコミットする準備をするにはどうすればよいですか? (うまくいけば、「削除された」ファイルごとに個別に対処する必要はありません)?

4

3 に答える 3

4

これを使用して:

git checkout -- .

すべての変更を破棄します。

于 2014-02-10T00:33:27.640 に答える
0

さて、私はディレクトリから出て、名前を... Oldに変更してクローンの答えを試しましたが、クローンを作成できなかったことがわかったとき(以前にプッシュできなかったため)、名前を付け直して開始しました.gitディレクトリ内のファイルを確認します。

そこではすべて問題ないように見えました。ターミナルウィンドウのディレクトリに戻って「gitstatus」を実行すると、誤って「削除された」ステージングされていないファイルがすべて消えてしまいました。

だから私はそれを正確に修正したものはわかりませんが(おそらくそれは単なるgitビューの問題でした)、今ではすべてが正常に見えます。

于 2012-08-13T03:48:30.887 に答える
0

これらのコマンドを実行するとき、ソースのあるソース コード ディレクトリにいますか? これが、たとえば .git ディレクトリにいた場合などに発生する可能性がある理由の 1 つです。

于 2012-08-13T02:26:34.013 に答える