4

作業コピーを更新するのgit resetに対し、インデックスを更新することを理解しています。git checkout私が理解できないのは、git reset参照とパスの引数を受け入れる必要があるユースケースですか? この場合、私はいつも使いたいと思いgit checkoutますか?

これは、人々がなぜできないのかと尋ねるたびに出てきますgit reset some-ref --hard -- some/path/to/file。本当の問題は、私たちが持っているのになぜgit reset受け入れるのかということです。git reset some-ref -- some/path/to/filegit checkout

誰かに2つの違いを教えるまで、これについて考えたことはありませんでした.

4

1 に答える 1

1

通常、ファイルをインデックスに追加し、それをインデックスから削除する必要があることに気付いた場合は、次のことが必要になります。

  • ファイルインデックスを HEADにリセットするための参照 (HEAD) (HEADはまだ何もステージングされていない状態を参照するため: コミット)
  • ファイル

あれは:

 git reset HEAD -- a/file

それはファイルを「アンステージ」します。

  • git reset コンテンツに影響を与えずにHEAD を移動git reset --hardします (作業ツリーが影響を受ける唯一のモードを実行しない限り)
  • git checkout常に作業ツリー(およびファイルの内容)を変更しました

git reset3 つのモード(ソフト、混合、ハード)があるため、ref とパスを受け入れます。
(「?の実用的な使い方git reset --soft」も参照してください)モード
だけ--hardが に似ていgit checkoutます。

同じトピックについては、「 ' ' と ' 'の違いは何ですか?git resetgit checkout」で詳しく説明しています。

于 2013-08-08T06:10:57.177 に答える