簡単な git の質問。実行後:
git reset HEAD file && git checkout -- file
ファイルはまだ「コミットのためにステージングされていない変更」セクションにありますが、そうではありません。2 つの操作を別々に実行すると (つまり、Enter キーを押して、それらの間と後に git ステータスを確認する)、機能します。
プラットフォーム: Linux amd64、git バージョン 1.8.1.3
簡単な git の質問。実行後:
git reset HEAD file && git checkout -- file
ファイルはまだ「コミットのためにステージングされていない変更」セクションにありますが、そうではありません。2 つの操作を別々に実行すると (つまり、Enter キーを押して、それらの間と後に git ステータスを確認する)、機能します。
プラットフォーム: Linux amd64、git バージョン 1.8.1.3
これはgit reset
、リセット後にファイルにステージングされていないコミットがある場合に、ゼロ以外の終了コードが返されるためです。したがって、&&
は の実行を妨げgit checkout
ます。最初のコマンドが「成功」した場合 (つまり、ゼロで終了した場合) にのみ、2 番目のコマンドが実行されます。
git reset HEAD file
インデックスを更新するだけで (つまり、ファイルに対する段階的な変更はすべて失われます)、変更されたファイルはそのまま残ります。
git checkout file
単純な(おそらく-f
iffile
が変更された場合) 同じことを達成するのに、なぜこのようにするのでしょうか?