web-dev-qa-db-ja.com

git remote addとgit cloneの違い

cloneコマンドは何をしますか? SVNにそれに相当するものはありますか?

違いは何ですか

git remote add test git://github.com/user/test.git

そして

git clone git://github.com/user/test.git

作成されたレポの名前は重要ですか?

61
nacho4d

git remote addは、特定のURLの名前を指定するエントリをgit configに作成するだけです。これを使用するには、既存のgitリポジトリが必要です。

git cloneは、指定したURIにある既存のgitリポジトリをコピーして、新しいgitリポジトリを作成します。

59
Jason LeBrun

これらは機能的に似ています(試してみてください!):

#git clone REMOTEURL foo 

そして:

#mkdir foo 
#cd foo 
#git init 
#git remote add Origin REMOTEURL 
#git pull Origin master 

さて、わずかな違いがありますが、基本的にはおそらく気付かないでしょう。読者に任せた演習として、各ディレクトリの.git/configを比較します。

46
Wes Hardaker

cloneコマンドは、指定したリポジトリのローカルコピーを作成します。 remote addは、プッシュまたはプルできるリモートリポジトリを追加します。

cloneと同等のsvnはcheckoutです。

9
Rafe Kettler

git clone

ファイルをコンピューターに物理的にダウンロードします。コンピューターのスペースが必要です。リポジトリが200Mbの場合、そのすべてがダウンロードされ、クローンしたディレクトリに配置されます。

git remote add

スペースを取りません!ポインタのようなものです!ディスクの消費は増えません。これは、利用可能なブランチとそのgitコミット履歴のスナップショットを取得するだけです。プロジェクトの実際のファイル/フォルダーは含まれていません。

もしあなたがそうするなら:

git remote add TechLeadRepo  git://github.com/user/test.git

その後、コンピューターに何も追加していません。リモートブランチにそれを追加した後、あなたはそのリモート上のすべてのブランチのリストを取得することができます:

git fetch --all

そして、同僚のfeature22ブランチをローカルに導入したい場合は、

git checkout -b myLocalFeature22 TechLeadRepo/feature22

チェックアウトを行った後、最新の変更を取得し、コンピューターからスペースを取ります。明らかに、それはあなたが持っていないすべての新しいコミットのためのスペースを取るだけです。

彼のレポジトリのクローンを作成したら、そのローカルリポジトリのディレクトリに移動して、目的のブランチにチェックアウトする必要があります。

2
Honey