6

コマンド「pull」が表示され、それが「clone」とどのように違うのか疑問に思っています。どちらの用語も、リモートリポジトリからコードを取得することを意味しているようです。ここに微妙な違いはありますか?

4

3 に答える 3

18

別のリポジトリに基づいて新しいリポジトリを作成する必要がある場合は、クローンを使用します。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 bclonebを使用するもう 1 つの利点は、同じディスク上でリポジトリを操作する場合ですa。これはハードリンクを使用して行われ、すべてのプラットフォーム (Windows、Linux、Mac) で機能します。

于 2009-09-09T10:07:16.040 に答える
11

hg cloneリモートリポジトリのローカルコピーを作成する方法です。Subversion に相当するものはsvn checkout.

hg pull別のリポジトリから変更をプルします。 hg updateこれらの変更をローカル リポジトリに適用します。 hg pull -uと同等hg pull; hg updateです。に相当する Subversionhg pull -usvn update.

于 2009-09-09T05:47:43.703 に答える
2

cloneは、既存のリポジトリのコピーとして新しいリポジトリを作成します。

pullは、すべての変更セット(まだ存在していない)を別のリポジトリから既存のリポジトリにインポートします。

于 2009-09-09T14:52:53.563 に答える