ブランチを切り替える git コマンドの名前はなぜgit checkout
ですか?
それは本当に意味がありますか?
代わりに名前を付けgit switch
ます。さらに、git checkout
他の意味もあります: 例: ファイルを元に戻す (のようにsvn revert
)
ブランチを切り替える git コマンドの名前はなぜgit checkout
ですか?
それは本当に意味がありますか?
代わりに名前を付けgit switch
ます。さらに、git checkout
他の意味もあります: 例: ファイルを元に戻す (のようにsvn revert
)
他のほとんどの回答は、何git checkout
が機能し、なぜ「チェックアウト」がそれを説明する合理的な方法であるかを説明していることがわかります。しかし、私は git をこよなく愛していますが、これは、人々がシステムを理解するのを助けようとしているときに生じる 2 つの深刻なフラストレーションに触れています。
git checkout
は 2 つの非常に異なることを行いますが、それらが別個のコマンドであると、初心者にとって役立ちます。
皮肉屋は、CVS と Subversion から来た人々を混乱させるために、git の用語が意図的に選ばれたと示唆するかもしれません! あなたが言及したもの(checkout
)は素晴らしい例です。もう 1 つはcommit
、git では完全にローカルであり、CVS / SVN ではサーバーに完全に依存する です。「記録」という darcs 用語は、git を初めて使用する人にとっては、あまり学習しなくて済みます。私が気に入っているもう 1 つの例は、git で表示される「needs update」というメッセージです。これは、実際には「needs to be commit」を意味します:)
もちろん、簡単な git、iolausなど、常に別のフロントエンドを git に使用することもできますが、ほとんどの人はいずれにせよ標準コマンドを習得する必要があるため、名前が付けられているコマンドのいくつかに慣れる必要があります。むしろ意外。
git のこれらのさまざまなコマンドの名前には歴史的な理由があると確信していますが、別の単語が選択されていれば役に立ちました...
更新: VonCは、2 つの使用法のいずれかでより安全にするために、コメント内の適切なエイリアスを持つ回答git checkout
へのリンクをリンクします;)
ブランチをチェックアウトするときは、(図書館から本を「チェックアウト」するかのように) そのブランチ内の最新のリビジョン状態の適切なファイルをすべて作業コピーとして提供するようにリポジトリに要求しているため、これは適切な名前です。
git checkout
ここで「他の意味」を持つことは実際には問題ではありません。このコマンドは、リビジョン状態 Xの個々のファイルまたは一連のファイル (「ブランチ」と読みます) を提供します。「元に戻す」ことを考慮するかどうかは、git checkout
柔軟性があり、少し一般的であるというより大きなポイントを見逃しています。どちらの場合も、リポジトリからある程度の状態をチェックアウトし、それを作業コピーとして設定して、編集できるようにします。
このコマンドは 2 つのアクションを実行するために使用できるため、「checkout」キーワードを使用することは意味があります。
2 つのアクションは次のとおりです。
コミット ID とブランチ名を区別する場合は、「--」引数も使用できます。
checkout
作業ツリー内のファイルを更新することを指します。元に戻すとは、作業ツリー内のファイルを以前のコミットに更新することも意味します。したがって、私の感覚では、を使用して更新または元に戻すコマンドを 1 つ持つ方が現実的git checkout
です。