15

これは非常にばかげたアイデアかもしれませんし、そうではないかもしれませんが、実行されたプルが他のリポジトリからもタグを自動的にフェッチするように git リポジトリを構成するにはどうすればよいでしょうか?

docsによると、リモートリポジトリごとにこれを行うことができるようです:

remote.<name>.tagopt
この値を --no-tags に設定すると、リモート <name> から取得する際の自動タグ追跡が無効になります。--tags に設定すると、リモート ブランチ ヘッドから到達できない場合でも、リモート <name> からすべてのタグが取得されます。これらのフラグを直接 git-fetch(1) に渡すと、この設定をオーバーライドできます。git-fetch(1) のオプション --tags および --no-tags を参照してください。

--tagsフェッチごとにデフォルトのフラグをフェッチする方法はありますか?

4

3 に答える 3

8

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

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

したがって、フェッチしているブランチからタグに到達できる場合は--tags、デフォルトで含める必要はありません。

一部のリポジトリ ( Linuxのリポジトリを含む) の長い歴史を考慮すると、常にすべてのタグをフェッチしようとすると、タグ リストが乱雑になる可能性があります (何百もの不要なタグによって汚染されたタグのリスト)。


git 1.9/2.0 (2014 年第 1 四半期) を開始すると、git fetch --tagsすべて ( などgit fetch) とタグがフェッチされることに注意してください。「<code>git fetch --tags」には「<code>git fetch」が含まれますか?を参照してください。

フェッチされている他のすべてのものに加えて、リモートからすべてのタグをフェッチするように要求します。

したがって、remote.<name>.tagOpt 構成オプションを試すことができます:

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

に設定すると、リモート ブランチ ヘッドから到達できない場合でも、--tagsすべてのタグが remote からフェッチされます。<name>

于 2012-09-22T08:51:55.203 に答える
7

これをリモートの構成に追加するだけです:

fetch = +refs/tags/*:refs/tags/*
于 2016-01-12T22:35:29.423 に答える
2

git config[1]で設定できます。

git config remote.origin.tagopt --tags

グローバルに設定するには、--globalスイッチを追加するだけです:

git config --global remote.origin.tagopt --tags

[1] https://git-scm.com/docs/git-config#Documentation/git-config.txt-remoteltnamegttagOpt

于 2021-03-06T18:11:15.553 に答える