mkdir repo
(後と)を行うことの違いは何ですかcd repo
:
git init
git remote add origin git://github.com/cmcculloh/repo.git
git fetch --all
git pull origin master
と
git clone git://github.com/cmcculloh/repo.git
つまり、明らかに1つは短いですが、それ以外は基本的に同じことをしていますか?
git clone
既存のリポジトリのローカル コピーを取得して作業する方法です。複数の作業コピーを持ちたい場合を除き、通常、特定のリポジトリに対して 1 回だけ使用されます。(または、ローカルのものを台無しにした後にクリーンなコピーを取得したい...)
git pull
(またはgit fetch
+ git merge
) は、リモート リポジトリからの新しいコミットでそのローカル コピーを更新する方法です。他の人と共同作業をしている場合は、頻繁に実行するコマンドです。
git clone
最初の例が示すように、他のさまざまな git コマンドでエミュレートすることは可能ですが、実際にgit pull
は「基本的に同じこと」を行っているわけではありませんgit clone
(またはその逆)。
clone がマスターだけでなく、追加のリモート追跡ブランチをセットアップすることを除いて、それらは基本的に同じです。マニュアルページをチェックしてください:
新しく作成されたディレクトリにリポジトリを複製し、複製されたリポジトリ (git branch -r を使用して表示可能) 内の各ブランチのリモート追跡ブランチを作成し、複製されたリポジトリの現在アクティブなブランチからフォークされた初期ブランチを作成してチェックアウトします。
素人の言葉では、次のように言えます。
このgit fetch
コマンドは、まだ持っていないサーバー上のすべての変更を取得しますが、作業ディレクトリはまったく変更しません。単純にデータを取得し、自分でマージできるようにします。ただし、ほとんどの場合、git pull
本質的にgit fetch
直後に a が続くコマンドが呼び出されます。git merge
詳細: https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches#Pulling