web-dev-qa-db-ja.com

git cloneとcheckoutの違いは何ですか?

git clonegit checkoutの違いは何ですか?

304
Praveen Sripati

チェックアウトのmanページ: http://git-scm.com/docs/git-checkout

Cloneのmanページ: http://git-scm.com/docs/git-clone

まとめると、cloneはあなたが持っていないリポジトリを取得するためのもので、checkoutはあなたがすでに持っているリポジトリの中でブランチを切り替えるためのものです。

注:SVN/CVSのバックグラウンドを持ち、Gitの初心者であれば、SVN/CVSのgit cloneと同等のものはcheckoutです。異なる用語の同じ表現はしばしば混乱を招きます。

305
August Lilleaas

git cloneはリモートのgitサーバからリポジトリを取得することです。

git checkoutはあなたのリポジトリにあなたが望むステータスをチェックアウトすることです(ブランチや特定のファイルのように)。

例えば、あなたは現在マスターブランチにいて、開発ブランチに切り替えたいと思っています。

git checkout develop_branch

たとえば、特定のファイルの特定のステータスにチェックアウトしたい

git checkout commit_point_A -- <filename>

これがGitを学ぶための よい参考資料です 、もっと簡単に理解することができます。

121
Kit Ho

注意すべきことの1つは、git内に「コピーアウト」がないことです。これは、ローカルレポジトリにフルコピーがすでに存在するためです。ローカルレポジトリは、選択したアップストリームレポジトリのcloneです。そのため、参照リポジトリでこれらのファイルに「ロック」をかけることなく、事実上個人的なすべてcheckoutを持つことができます。

Gitは、あなたが持っているファイル/ディレクトリツリー/ commit/repoのコピーが、信頼の階層内で「マスター」として宣言できる人とまったく同じであることを検証するためのメカニズムとしてSHA1ハッシュ値を提供します。これにより、ほとんどのSCMシステムが(プライベートコピー、大きなマージ、そして実際のソースコードの管理や管理ができないという問題を抱えて)邪魔をする原因となるすべての「ロック」を回避できます。

11
Philip Oakley

単にgit checkoutには2通りの使い方があります

  1. git checkout <existing_local_branch_name>のような既存のローカルブランチ間の切り替え
  2. Flag -bを使用して現在のブランチから新しいブランチを作成します。あなたがマスターブランチにいる場合、git checkout -b <new_feature_branch_name>がマスターの内容で新しいブランチを作成し、新しく作成されたブランチに切り替えると仮定します。

あなたはより多くのオプションを見つけることができます 公式サイト

4
Khader M A

checkoutは多くの場合に使用できます。

1番目のケース:ローカルリポジトリのブランチを切り替える例:git checkout exists_branch_to_switch

-bを使用して、新しいブランチを作成してこのケースに切り替えることもできます。

git checkout -b new_branch_to_switch

2番目のケース:x revからファイルを復元する

git checkout rev file_to_restore ...

2
Goms