1

ファイルを以前のコミットに戻さずに、最後の GIT コミットをキャンセルしたい。つまり、コミットする少し前の状態に戻りたいので、コミットする前にすべての新しい/変更されたファイルを見ることができます。それが可能だ?

4

3 に答える 3

2

以下を使用できます。

git reset HEAD^

最後のコミットは取り消されますが、そのコミットの変更はファイルシステムに残ります。

于 2013-10-31T13:22:26.337 に答える
1

やりたいことに基づいて、2 つのオプションがあります (完全には明確ではありません)。作業ディレクトリをそのまま保持したいが、現在のブランチを前のコミットに戻したい場合。

これは、次を使用して簡単に実行できますgit reset

git reset HEAD~1

オプションを使用し--softて、インデックスをそのまま保持することもできます。

git reset --soft HEAD~1

ブランチが現在指しているコミットを指し続けたいが、実際にはファイルを以前のコミットのバージョンに戻したい場合は、それも可能です。git checkoutそのコミットにデタッチせずに、前のコミットから作業ディレクトリをチェックアウトするために使用できます。

git checkout HEAD~1 -- .

基本的にパスを ( の後に--) 指定することで、実際にコミット/ブランチをチェックアウトするのではなく、リストしたすべてのファイルの状態をチェックアウトするように Git に指示します.。リポジトリのルートにいる必要があります)。

于 2013-10-31T13:22:24.180 に答える
0

なぜこれをしなければならないのか、理由がわかりません...

とにかく、簡単な解決策は次のとおりです。

  • ディレクトリ全体を別の場所にコピーします
  • git reset --hard commit_nbを使用して、git 履歴を以前のコミットにリセットします。
  • コピーから現在のパスにファイルを上書きします ( .git/ディレクトリなしでファイルのみを上書きすることに注意してください)
于 2013-10-31T13:20:38.560 に答える