2013-05-21 7 views
48

を引く私は現在、次のようにgitのリモートセットアップを持っている:私は分岐マスターにgit pullを発行するとのgitを使ってリモートからすべてのタグをフェッチすると、

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

、すべてのリモートヘッドは、上流リモコン/に取り込まれ、その後、リモコン/ upstream/masterがマスタにマージされます。到達可能なタグも同時に取得されるため、非常に便利です。

git pullは、のすべてのタグをヘッドから直接届くものだけでなく、リモートで追加取得したいと考えています。私はもともとtagopt == --tagsを設定しようとしましたが、これがタグだけをフェッチする原因となり、すべてが破られました。 (Junioもそれはhorrendous misconfiguationだと言っています)。

git pullは、リモートヘッドに加えて、デフォルトですべてのリモートタグをフェッチする方法はありますか?

+0

リマインダーを試すことができます。 'gitの:あなたが実際に(自動的に動作しません)最初のタグを押してくださいプッシュオリジン ' – Hafenkranich

+0

' tagopt'ソリューションを使うことはもはや誤った設定ではなくなりました。 [1.9/2.0(Q1 2014)現在](https://stackoverflow.com/a/20608181)これは、通常取り出されたものに加えて、*すべてのタグを取得します。 – mgiuffrida

答えて

44

タグのrefspecをローカル設定に追加することでこれを達成できるはずです。具体的には

[remote "upstream"] 
    url = <redacted> 
    fetch = +refs/heads/*:refs/remotes/upstream/* 
    fetch = +refs/tags/*:refs/tags/* 
+1

ああ、私はあなたが複数のフェッチラインを持つことができなかったとは思っていませんでした。それはとても素敵で明示的です。 – jleahy

99

git fetch --tagsが私のために働いた。

+1

これは質問に対する答えを提供しません。批評をしたり、著者の説明を求めるには、投稿の下にコメントを残してください。 – Fizzix

+6

@Fizzixおそらく、タイトルは「デフォルトで」を含むように変更する必要があります。この投稿は私の質問に答えました。 –

+0

これは私には役に立たなかった。 'git ls-remote'でタグを見ることができます。 – dangeroushobo

12

--forceオプションは、ローカルタグをリフレッシュするために有用であるフェッチください。あなたは、フローティングタグがあれば、主:

git fetch --tags --force 

をgitのプルオプションも--forceオプションがあり、その説明は同じです:

gitのフェッチをするときに使用されている:refspec、それは することを拒否リモートブランチ がフェッチする場合を除き、ローカルブランチを更新してください。このオプションは、 のチェックを無効にします。

しかし、--no-tagsのドキュメントによれば:

デフォルトで、 リモートリポジトリからダウンロードされたオブジェクトを指し示すタグがフェッチされ、ローカルに格納されています。

そのデフォルトの文が制限されていない場合、あなたはまた、自分自身に

git pull --force 
関連する問題