2016-11-15 28 views
0

Github-Help: Syncing a Forkのドキュメントは、私のGitHubフォークを上流のレポと同期させておくための3つのコマンドを示しています。アップストリームでフォークを同期する:git fetch + git checkout + git mergeとgit checkout + git pull

git fetch upstream 
git checkout master 
git merge upstream/master 

上記の3つのコマンドの代わりに次の2つのコマンドを使用できますか?

git checkout master 
git pull upstream/master 

2組のコマンドは同等か、それとも違いがありますか?

+0

$ git pull upstream/master fatal: 'upstream/master' does not appear to be a git repository fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 
(http://stackoverflow.com/ques/14894768/in-git-how-is-fetch-pull-and-how-is-merge-different-rebaseと異なる) –

+0

'git pull' =' git fetch' + 'git merge'、最低でも一般的に –

+0

FYI: 'git pull upstream/master'は間違っています.3番目の単語(' upstream/master')は* remote *の名前でなければなりません。 'upstream/master'はa *リモートトラッキングブランチ*。 Gitは非常に似た言葉を使っているが、非常に異なる(意味はあるが)という意味の言葉を使っている:* branch *という単語には少なくとも2つの意味があり、* remote *という単語自体が意味を持ち、* remote-tracking branch * 。 – torek

答えて

0

これらのコマンドセットは同等ではありません。

git pull 

は、二つのコマンドに分割されています。問題はそのgitのフェッチ、ある

git fetch 
git merge 

Gitのマージが追跡参照を必要としながら、Githubのヘルプページを持っている理由です、リモート参照が必要です。

git fetch upstream 

が、それは

git merge upstream/master 
を持っています

mergeコマンドはupstream/masterブランチをとり、現在チェックアウトされているブランチ(この場合は 'master')にマージします。しかし、コマンドはブランチでは動作しません。あなたがしようとすると、それはそう、リモートを必要とフェッチ:

git fetch upstream/master 
git merge upstream/master 
フェッチに失敗します

git pull upstream/master 

Gitはにこれを分割可能性のある重複した[gitのではどのように引くとは異なるフェッチされ、どのようにリベースとは異なるマージのですか?]

+0

**注** 'git pull upstream/master'は、' git fetch upstream "を少なくとも1回実行した場合に機能します。' upstream/master'は、リモートサーバのコピーではなく、リモートブランチのローカルコピーを参照します。 –

+0

@FabienBouleauそれは私のシステムでは正しくありません。すでに存在していても、 'upstream/master'を使ってフェッチとプルの両方が失敗します。フェッチには分岐参照ではなくリモート参照が必要です。おそらく、アップストリームがセカンダリリモートである場合(つまり、オリジンが追加されている場合)、デフォルトではなく、 "アップストリーム"と同じURL /フォルダ、またはその他の設定変更を行ったリモートの名前として "upstream/master"最初)。 – LightCC

+0

私の悪いことに、 'upstream/master'という表記は間違っています。 'git pull upstream master 'または' git fetch upstream master'でなければなりません。リモートリポジトリを初めてダウンロードするときは 'git fetch upstream '(' master'なし)またはリモート追跡ブランチ情報が設定されません( 'FETCH_HEAD'のみ)。 'upstream/master'はリモートトラッキングブランチが存在すると参照するためだけに使用します。 –

関連する問題