2

追跡されていないgitのディレクトリにたくさんのファイルがありました。git add .私は、変更をコミットしてプッシュするという間違いを犯しました。そのコミットの前に追跡さgit reset --hardれていなかったファイルが再び追跡されていない場所に戻るにはどうすればよいですか。追跡を解除する必要があるさまざまな場所に多くのファイルがあるため、git reset <FILE>うまくいきません。

4

2 に答える 2

1
$ git commit -m "Something terribly misguided"              (1)
$ git reset HEAD~                                           (2)
<< edit files as necessary >>                               (3)
$ git add ...                                               (4)
$ git commit -c ORIG_HEAD 
  1. これはあなたが元に戻したいものです
  2. これにより、作業ツリー (ディスク上のファイルの状態) は変更されませんが、コミットは元に戻され、コミットした変更はステージングされないままになります (そのため、git ステータスに「コミットのためにステージングされていない変更」と表示され、追加する必要があります)。コミットする前にそれらをもう一度)。以前のコミットにさらに変更を加えたい場合、またはコミット メッセージを変更したい場合1、代わりに git reset --soft HEAD~ を使用できます。これは git reset HEAD~ に似ていますが、既存の変更はステージングされたままになります。
  3. 作業ツリー ファイルを修正します。
  4. 新しいコミットに含めたいものをすべて git add します。
  5. 古いコミット メッセージを再利用して、変更をコミットします。reset は古いヘッドを .git/ORIG_HEAD にコピーしました。commit with -c ORIG_HEAD はエディターを開きます。このエディターには、最初に古いコミットからのログ メッセージが含まれており、それを編集できます。メッセージを編集する必要がない場合は、-C オプションを使用できます。

ソース: Git で最後のコミットを元に戻すには?

于 2016-10-20T19:26:58.113 に答える