コマンド「pull」が表示され、それが「clone」とどのように違うのか疑問に思っています。どちらの用語も、リモートリポジトリからコードを取得することを意味しているようです。ここに微妙な違いはありますか?
3 に答える
別のリポジトリに基づいて新しいリポジトリを作成する必要がある場合は、クローンを使用します。pull later を使用して、新しい変更セットをクローンに転送します。clone を使用して最新の変更セットだけを取得することはできません。これが pull の目的です。pull コマンドは 2 つのリポジトリを比較し、リポジトリにない変更セットを見つけて、最後にそれらを転送します。
ただし、clone と pull には類似点があることは間違いありません。どちらもリポジトリ間で履歴を転送します。最初にクローンを作成する場合
hg clone https://www.mercurial-scm.org/repo/hg/
次に、これは行うのとまったく同じ効果があります
hg init hg
cd hg
hg pull https://www.mercurial-scm.org/repo/hg/
hg update
どちらの場合も、まったく同じ履歴が得られます。ただし、 clone コマンドは、.hg/hgrc
ファイルを編集してデフォルトのパスを設定するため、より便利です。
[paths]
default = https://www.mercurial-scm.org/repo/hg/
これはhg pull
、URL を指定せずにリポジトリで実行できることです。hg clone a b
cloneb
を使用するもう 1 つの利点は、同じディスク上でリポジトリを操作する場合ですa
。これはハードリンクを使用して行われ、すべてのプラットフォーム (Windows、Linux、Mac) で機能します。
hg clone
リモートリポジトリのローカルコピーを作成する方法です。Subversion に相当するものはsvn checkout
.
hg pull
別のリポジトリから変更をプルします。 hg update
これらの変更をローカル リポジトリに適用します。 hg pull -u
と同等hg pull; hg update
です。に相当する Subversionhg pull -u
はsvn update
.
cloneは、既存のリポジトリのコピーとして新しいリポジトリを作成します。
pullは、すべての変更セット(まだ存在していない)を別のリポジトリから既存のリポジトリにインポートします。