git clone
とgit checkout
の違いは何ですか?
チェックアウトの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
です。異なる用語の同じ表現はしばしば混乱を招きます。
git cloneはリモートのgitサーバからリポジトリを取得することです。
git checkoutはあなたのリポジトリにあなたが望むステータスをチェックアウトすることです(ブランチや特定のファイルのように)。
例えば、あなたは現在マスターブランチにいて、開発ブランチに切り替えたいと思っています。
git checkout develop_branch
たとえば、特定のファイルの特定のステータスにチェックアウトしたい
git checkout commit_point_A -- <filename>
これがGitを学ぶための よい参考資料です 、もっと簡単に理解することができます。
注意すべきことの1つは、git内に「コピーアウト」がないことです。これは、ローカルレポジトリにフルコピーがすでに存在するためです。ローカルレポジトリは、選択したアップストリームレポジトリのclone
です。そのため、参照リポジトリでこれらのファイルに「ロック」をかけることなく、事実上個人的なすべてのcheckout
を持つことができます。
Gitは、あなたが持っているファイル/ディレクトリツリー/ commit/repoのコピーが、信頼の階層内で「マスター」として宣言できる人とまったく同じであることを検証するためのメカニズムとしてSHA1ハッシュ値を提供します。これにより、ほとんどのSCMシステムが(プライベートコピー、大きなマージ、そして実際のソースコードの管理や管理ができないという問題を抱えて)邪魔をする原因となるすべての「ロック」を回避できます。
単にgit checkoutには2通りの使い方があります
git checkout <existing_local_branch_name>
のような既存のローカルブランチ間の切り替えgit checkout -b <new_feature_branch_name>
がマスターの内容で新しいブランチを作成し、新しく作成されたブランチに切り替えると仮定します。あなたはより多くのオプションを見つけることができます 公式サイト
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
...