違いは何であるgit clone
とはgit checkout
?
違いは何であるgit clone
とはgit checkout
?
回答:
チェックアウトのmanページ:http : //git-scm.com/docs/git-checkout
クローンのmanページ:http : //git-scm.com/docs/git-clone
要約すると、クローンは持っていないリポジトリを取得するためのもので、チェックアウトはすでに持っているリポジトリ内のブランチを切り替えるためのものです。
注:SVN / CVSのバックグラウンドがあり、Gitを初めて使用する場合git clone
、SVN / CVSでのと同等のものはcheckout
です。異なる用語の同じ表現はしばしば混乱を招きます。
checkout
作業コピーのファイルを別のリビジョンのファイルのバージョンで上書きするなど、他の目的にも使用できます。
git cloneは、リモートgitサーバーからリポジトリを取得するためのものです。
git checkoutは、リポジトリの目的のステータス(ブランチや特定のファイルなど)をチェックアウトすることです。
たとえば、現在マスターブランチにいて、開発ブランチに切り替えたいとします。
git checkout develop_branch
たとえば、特定のファイルの特定のステータスにチェックアウトしたい場合
git checkout commit_point_A -- <filename>
これは、Gitを学ぶための優れたリファレンスです。これにより、はるかに簡単に理解できます。
git clone
ローカルリポジトリでも動作します。
注目すべきことの1つは、git内に「コピーアウト」がないことです。これは、ローカルリポジトリに完全なコピーが既にあるためです。ローカルリポジトリclone
は、選択した上流リポジトリの1つです。だから、効果的に個人の持っているcheckout
のすべてのものを参照レポでこれらのファイルにいくつかの「ロック」をかけることなく、。
Gitは、ファイル/ディレクトリツリー/ commit / repoのコピーが、信頼の階層内で「マスター」として宣言できる人が使用するものとまったく同じであることを確認するメカニズムとしてSHA1ハッシュ値を提供します。これにより、ほとんどのSCMシステムが窒息する原因となるすべての「ロック」が回避されます(プライベートコピー、大きなマージ、およびソースコードの実際の制御や管理ができないという通常の問題があります;-)!
単にgit checkoutには2つの用途があります
git checkout <existing_local_branch_name>
git checkout -b <new_feature_branch_name>
のコンテンツで新しいブランチを作成し、新しく作成されたブランチに切り替えるとしますあなたは公式サイトでより多くのオプションを見つけることができます
-b
オプションは素晴らしいもので、新しいローカルブランチを作成し、単一のコマンドで同時にチェックアウトします。楽しかった!