26

Githubでリポジトリを設定した後、そのリポジトリをローカルリポジトリにプルする方法は2つあるようです。

まず、ディレクトリを作成し、空白のリポジトリを初期化し、リモートを追加してから、リモートから変更をプルすることができます。

> mkdir "exampleProject"
> cd "exampleProject"
> git init
> git remote add origin git@github.com:exampleUser/exampleProject.git
> git pull origin master

次に、リモートのクローンを作成できます。

> git clone git@github.com:exampleUser/exampleProject.git

クローンは上記の5ステップバージョンのショートカットにすぎませんか、それとも他のこともしますか?ある方法を他の方法よりも使用すると、問題が発生しますか?

4

1 に答える 1

27

gitコマンドであろうと一般的なプログラムであろうと、多くのコマンドは、他の方法では10行で実行できることを1行で実行します。作業を節約することは常に良いことです!

とは言うものの、あなたのステップは何をするかに近いですが、完全に同じではgit cloneありません。私はいくつかの違いを考えることができます、すべては枝に関係しています:

  • 何らかの理由で、リモートのHEADがマスターでない場合、クローンは正しいことを行います。マスターではなく、リモートと同じ名前のブランチを提供します。これはまれですが、注意すべき詳細です。

  • git pullリモートブランチは作成されません。リモートに複数のブランチがある場合、クローンはリポジトリにリモートブランチ、、...を作成remotes/origin/fooremotes/origin/barます。Agit fetch originは、リストされた手順でそれを処理します。

  • また、クローンが行う、オリジンを追跡するためのマスターブランチを設定していません。これをリストされたステップにとして追加できますgit config branch.master.remote origin; git config branch.master.merge refs/heads/master。これは非常に重要です-あなたのステップでは、マスターがチェックアウトしていてgit pullと入力すると、何をすべきかわかりません。

私が1つか2つ見逃した可能性があります。いずれにせよ困難については、デフォルトのクローンと「手動クローン」の違いをすべて解決したとしても、私のアドバイスは再発明しないことgit cloneです。

  • 短いです。なぜもっと仕事をするのですか?

  • 動作を変更するための便利なオプションがあります。リストされたコマンドに追加するのは本当に難しい--sharedでしょう。

  • 現在および将来、正しいことを行うことが保証されています。上記のような詳細を見逃した場合はどうなりますか?gitがクローンに影響を与えるグローバル構成パラメーターを追加した場合はどうなりますか?それを考慮に入れるためにコマンドを変更する必要がありますが、gitcloneはすでに知っています。

于 2010-11-05T18:30:17.940 に答える