2012-09-21 11 views
8

これは非常にばかげたアイデアかもしれませんが、自動的に行われるプルが自動的に他のリポジトリからタグを取得するようにgitリポジトリを設定することはできますか?gitがすべてのプルで自動的にタグを取得するように設定するにはどうすればよいですか?

リモートを:あなたは、リモートreposistoryごとにこれを行うことができますように

the docsによると、それが見えます。 <名前> .tagopt
この値を--no-tagsに設定すると、リモートからフェッチする場合の自動タグの後に の自動タグが無効になります。。 を--tagsに設定すると、 にリモートブランチヘッドから到達できない場合でも、リモートのすべてのタグが<の名前>からフェッチされます。これらのフラグを直接 に渡してgit-fetch(1)に渡すと、この設定を上書きできます。 git-fetch(1)のオプション--tagsと --no-tagsを参照してください。

--tagsフェッチするたびにフェッチするデフォルトフラグを作成する方法はありますか?

答えて

5

フェッチタグは、 "Does “git fetch --tags” include “git fetch”?"で説明されているように、フェッチコミット(git fetch)とは異なる効果があります。

後者はブランチヘッドを更新し、実際に更新されたブランチから到達可能なタグをフェッチします。
前者はすべてのタグを取得しますが、ブランチヘッドを更新しません。

したがって、フェッチしているブランチからタグが再キャッシュ可能な場合は、デフォルトで--tagsを含める必要はありません。常にすべてタグをフェッチしたい、(linux oneを含む)いくつかのレポの大きな歴史を考えると

は、タグリスト乱雑( - 必要のないタグの数百polluttedタグのリスト)につながる可能性があります。


gitの1.9/2.0(Q1 2014)を開始、git fetch --tagsは(git fetchなど)はすべて、プラスのタグを取得することに注意してください。 「Does “git fetch --tags” include “git fetch”?」を参照してください。

すべてのタグがフェッチされている任意の他に加えて、リモートからフェッチすることを要求。

だからremote.<name>.tagOpt config optionを試すことができます。

--tagsに設定
git config (--global) remote.<name>.tagOpt --tags 

は、彼らがリモートブランチヘッドから到達可能でない場合でも、リモート<name>からすべてのタグを取得します。

+0

フェッチタグはデフォルトなので、はっきりLinusが、それは悪いアイデアだと思っていません。しかし、私のグループはBitKeeperに慣れており、頻繁にタグを取ることを忘れる(つまりタグを解放する)。無駄なタグ量がばかげている場合は、タグを削除することができます。 –

+0

@RossRogersしかし、リリースブランチをフェッチしている場合、タグも取得されます。 – VonC

+0

デフォルトの振る舞いは、私たちのgitトランクからフェッチすることです(はい、私たちはトランクを持っていますが、人々は互いに引っ張り合うことができます)。このトランクは、[Jenkins](http://jenkins-ci.org/)に似た内部ツールでwrapperされ、一連のテストを通過した後に編集内容のみを統合します。 とにかく、彼らは通常、より多くの回帰が実行されている内部 "リリース"から引き出されません。彼らは回帰によって非常によく守られているので、彼らは通常、トランクの先端から引っ張ります。 1つのコマンドで常にタグをつかうようにしたいので、私はこの質問をしました。 –

3

ちょうどあなたのリモートの設定にこれを追加します。

fetch = +refs/tags/*:refs/tags/* 
+1

グローバルでこれを行うオプションはありますか?リポジトリを指定するだけではありません。 – zx1986

関連する問題