実行の違いは何ですか(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つは短いですが、それ以外は基本的に同じことをしていますか?
基本的には同じですが、クローンはマスターだけでなく追加のリモートトラッキングブランチをセットアップします。 manページ をご覧ください。
リポジトリを新しく作成されたディレクトリにクローンし、クローンリポジトリの各ブランチにリモートトラッキングブランチを作成し(git branch -rを使用して表示)、クローンリポジトリの現在アクティブなブランチから分岐された初期ブランチを作成およびチェックアウトします。
git clone
は、既存のリポジトリのローカルコピーを取得する方法です。複数の作業コピーを持ちたい場合を除き、通常は特定のリポジトリに対して1回だけ使用されます。 (または、ローカルのものを台無しにしてきれいなコピーを取得したい...)
git pull
(またはgit fetch
+ git merge
)は、pdateリモートリポジトリからの新しいコミットによるローカルコピーの方法です。他のユーザーと共同作業している場合、頻繁に実行するコマンドです。
最初の例が示すように、git clone
を他のgitコマンドの組み合わせでエミュレートすることは可能ですが、実際にはgit pull
がgit clone
と「基本的に同じこと」を実行しているわけではありません(またはその逆)。
素人の言葉で言うことができます:
git clone
は、システムにリポジトリのコピーを作成していることを意味します。
git fork
は、リポジトリをGithubアカウントにコピーすることを意味します。
git pull
は、最後に変更されたリポジトリを取得していることを意味します。
git Push
は、変更後にリポジトリを返すことを意味します。
素人の言葉で:
git clone
はダウンロード中で、git pull
は更新中です。
clone:リモートサーバーリポジトリをローカルマシンにコピーします。
プル:ローカルマシンに追加された新しい変更を取得します。
これが違いです。
クローンは通常、リモートリポジトリコピーを取得するために使用されます。
プルは、チームで作業している場合、他のチームメイトに追加されたコードを表示するために使用されます。
git cloneは、リモートサーバーリポジトリで現在動作しているものを正確にダウンロードし、そのプロジェクトが置かれているマシンのフォルダーに保存するために使用されます。ほとんどの場合、プロジェクトを初めてアップロードするときにのみ使用されます。そのプルの後、より良いオプションです。
git pullは基本的に(clone(download)+ merge)操作であり、主にチームワークとして作業しているときに使用されます。つまり、そのプロジェクトの最新の変更が必要な場合は、プルすることができます。
うーん、私がクローンを作成するときのように、プルしたときにリモートブランチ「4.2」が表示されないのは何ですか?明らかに同一ではないものがあります。
tmp$ mkdir some_repo
tmp$ cd some_repo
some_repo$ git init
Initialized empty Git repository in /tmp/some_repo/.git/
some_repo$ git pull https://github.ourplace.net/babelfish/some_repo.git
:
From https://github.ourplace.net/babelfish/some_repo
* branch HEAD -> FETCH_HEAD
some_repo$ git branch
* master
対
tmp$ rm -rf some_repo
tmp$ git clone https://github.ourplace.net/babelfish/some_repo.git
Cloning into 'some_repo'...
:
Checking connectivity... done.
tmp$ cd some_repo
some_repo$ git branch
* 4.2
git fetch
コマンドは、まだ持っていないサーバー上のすべての変更を取得しますが、作業ディレクトリをまったく変更しません。単にデータを取得し、自分でマージできるようにします。ただし、ほとんどの場合、git pull
というコマンドがあり、これは基本的にgit fetch
の直後にgit merge
が続きます。
詳細: https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches#Pulling
git clone URL --->完全なプロジェクトまたはリポジトリが個別のディレクトリとしてダウンロードされます。変更だけでなくgit pull URL ---> fetch + merge->プロジェクト全体ではなく、行われた変更のみを取得します