2011-08-03 14 views
6

現在のブランチでgit fetchを実行すると、どのブランチがフェッチされるのか、どのように変更できますか(git remoteまたは編集.git/configファイル)現在のブランチがどのブランチにあるかを調べる方法

リモートブランチgit pullから内容を取得していますか? git fetchが内容を取り出すのは同じですか?この情報をすべて表示できるgitコマンドがありますか?あなたはorigin/master、タイプが

git branch --set-upstream master origin/master 

を追跡するmasterをローカル、git fetchは、すべての枝を取得したい場合は

答えて

7

は、

git branch --set-upstream <local_branch> <remote_branch> 

だから、ローカルのブランチで使用するために追跡されたリモートブランチを設定するには設定されたリモート。

あなたが複数のリモコン(例えばoriginother)を持っている場合は、

git fetch origin 

originをフェッチするリモートotherながら

git fetch other 

を取得します。

、リモートブランチを追跡されているかを調べるオープン.git/config

[branch "mybranch"] 
    remote = <remote_name> 
    merge = <remote_branch> 

のようなエントリを検索するにはこれがあなたのローカルブランチmybranchが設定されたリモートとして<remote_name>を持っており、それが<remote_name><remote_branch>を追跡するということを示しています。

[remote "origin"] 
    fetch=+refs/heads/*:refs/remotes/origin/* 
    url=<url_of_origin> 

これはあなたの起源のrefs/headsの下に保存された枝がフェッチ得ることを示しています:枝がリモートからフェッチされ、それらがどのようにあなたの地元のレポで呼び出され.git/configの次のセクションで定義されている

ローカルレポのrefs/remotes/origin/に保存されます。

あなたはmybranchとタイプgit fetch上にある場合、([remote <remote_name>]セクションで指定)<remote_name>の改正がフェッチされます。 git pullと入力すると、<remote_name>のリビジョンをフェッチした後、<remote_branch><remote_name>ブランチはmybranchにマージされます。

詳細情報は、git branch,git fetchおよびgit pullのマニュアルページに記載されています。

+0

リモートブランチに関する情報を探していましたが、最後の段落(.git/configを調べること)は非常に便利です。 [リモート "origin"] fetch = + refs/heads/*:refs/remotes/origin/* (私の.git/config内に)意味がありますか? 'git fetch'は、origin/refs/heads/xyzという形式のすべてのブランチをローカルリモート追跡ブランチrefs/remotes/origin/xyzに持っていますか?すべてのxyz、または現在のブランチ( 'git fetch'が発行されているもの)だけに起こりますか? –

+0

これは素晴らしいことです。小さな編集:あなたが 'mybranch'にいて、' git fetch'とタイプすると、[] section_で指定された '' _のリビジョンがフェッチされます。私はそれが正しいと思います、そうですか? –

+0

何らかの理由で '@ eckes'と言うことはできません。それは自動的に削除されます! :-( –

関連する問題