[解決済み】「git fetch --tags」は「git fetch」を含みますか?
質問
素朴な疑問なのですが、quot;git fetch"の関数は
git fetch --tags
?
つまり、もし私が
git fetch --tags
をすぐに実行する理由はあるのでしょうか?
git fetch
を直後から実行するのですか?
についてはどうでしょうか。
git pull
と
git pull --tags
? 同じ状況?
解決方法は?
注
git 1.9/2.0 (2014年第1四半期)
,
git fetch --tags
タグを取得する
に加えて
は、オプションなしで同じコマンドラインによって取得されるものです。
タグのみを取得する。
git fetch <remote> 'refs/tags/*:refs/tags/*'
詳細には
参照 コミット c5a84e9 によって マイケル・ハガティ(mhagger) :
前回までのfetchの"
--tags
"オプションは、refspecを指定することと同等と見なされていました。refs/tags/*:refs/tags/*
をコマンドラインで実行した。 特に
remote.<name>.refspec
の設定は無視されました。しかし、他の参照も取得せずにタグを取得することはあまり有益ではありません、一方、それは は タグを取得できるのは非常に便利です。 に加えて 他のリファレンス
そこで、このオプションのセマンティクスを変更し、後者を行うようにします。を取得したい場合 のみ タグを明示的に指定することが可能です。
git fetch <remote> 'refs/tags/*:refs/tags/*'
1.8.0.3 以前のドキュメントでは、" のこの側面について曖昧であったことに注意してください。
fetch --tags
という挙動になります。
コミット f0cb2f1 (2012-12-14)fetch --tags
ドキュメントを古い動作に合わせるようにした。
このコミットでは、新しい動作に合わせてドキュメントを変更します (Documentation/fetch-options.txt
).
すべてのタグをリモートから取得するよう要求する に加えて、他のすべてのものを取得します。 .
Git 2.5(2015年第2四半期)以降
git pull --tags
はより堅牢です。
参照
コミット 19d122b
によって
ポール・タン (
pyokagan
)
, 2015年5月13日。
(によって統合されました。
ジュニオ・C・ハマノ--。
gitster
--
で
コミット cc77b99
, 2015年5月22日)
pull
: 削除
--tags
マージ候補がない場合のエラー
以来 441ed41 ("
git pull --tags
": error out with a better message, 2007-12-28, Git 1.5.4+),git pull --tags
の場合、別のエラーメッセージが表示されます。git-fetch
がマージ候補を返さなかった場合。It doesn't make sense to pull all tags; you probably meant: git fetch --tags
というのも、その当時は
git-fetch --tags
は、すべての が設定されているため、マージ候補が存在しない。そのため、混乱を防ぐためにこのエラーメッセージが導入されました。しかし c5a84e9 (
fetch --tags
: フェッチタグ に加えて 他のもの、2013-10-30、Git 1.9.0+)。git fetch --tags
に加えて、タグを取得することになります。 に加えて、設定されているすべての refspecs を指定します。
したがって、マージ候補がない状況が発生した場合、その原因は--tags
が設定されました。そのため、この特別なエラーメッセージは、現在では無関係です。混乱を避けるため、このエラーメッセージを削除してください。
Git 2.11+(2016年第4四半期)使用時
git fetch
が早くなりました。
参照
コミット 5827a03
(2016年10月13日)によるものです。
ジェフ・キング (
peff
)
.
(によって統合されました。
ジュニオ・C・ハマノ--。
gitster
--
で
コミット 9fcd144
, 2016年10月26日)
fetch
: "quot"を使用します。
has_sha1_file
以下のタグの場合
<ブロッククオート
フォローするブランチとは無関係な多くのタグを持つリモートからフェッチするとき、タグが指すオブジェクト(フェッチするつもりはない!)がリポジトリに存在するかどうかを慎重にチェックするために、あまりにも多くのサイクルを浪費してきました。
このパッチは、フェッチにHAS_SHA1_QUICKを使用するように教え込みます。 を使うかもしれない場合、スピードのために精度を上げる必要があります。 同時リパック
以下は、付属のperfスクリプトで、上記と同様の状況を設定した結果です。
Test HEAD^ HEAD
----------------------------------------------------------
5550.4: fetch 11.21(10.42+0.78) 0.08(0.04+0.02) -99.3%
という状況にのみ適用されます。
- クライアント側で多くのパックを作成して
reprepare_packed_git()
が高価になります (最も高価な部分は、ソートされていないリストで重複を見つけることで、これは現在二次的なものです)。- サーバー側で自動追従の候補となる(つまりクライアントが持っていない)タグ参照を大量に必要とする。 そのたびにパックディレクトリの再読込が発生します。
- 通常であれば、クライアントはそれらのタグを自動追尾し、1回の大きなフェッチの後、(2)はもはや真ではありません。
しかし、これらのタグが、クライアントがフェッチするものとは切り離された履歴を指している場合、自動追跡は行われず、これらの候補はフェッチのたびに影響を及ぼします。
Git 2.21(2019年2月)では、リグレッションが発生したようで、その際に
コンフィグ
remote.origin.fetch
は
ではない
デフォルトの
(
'+refs/heads/*:refs/remotes/origin/*'
)
fatal: multiple updates for ref 'refs/tags/v1.0.0' not allowed
Git 2.24(2019年第4四半期)では、別の最適化が追加されました。
参照
コミットb7e2d8b
(2019年9月15日)による
鈴木雅也さん(
draftcode
)
.
(によって統合されました。
ジュニオ・C・ハマノ--。
gitster
--
で
コミット 1d8b0df
, 2019年10月07日)
fetch
使用
oidset
より速く検索するために必要なOIDを保持するために
<ブロッククオート
期間中
git fetch
を使用すると、クライアントは、広告されたタグのOIDがフェッチリクエストのウォントOIDセットに既にあるかどうかをチェックします。
このチェックはリニアスキャンで行われる。
多くのrefを持つリポジトリでは、このスキャンを繰り返すと15分以上かかります。
これを高速化するために
oid_set
を他のrefのOIDのために使用します。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git フェッチ リモートブランチ
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ローカルにない作業がリモートに含まれているため、アップデートが拒否された
-
[解決済み】マージの競合が発生した git stash pop の取り消し
-
[解決済み] [Solved] 作業ツリーのディレクトリ 'example.com' を作成できませんでした。パーミッションが拒否されました
-
[gitコミット失敗の解決] 現在のブランチの先端が後ろにあるため、更新が拒否されました。
-
[解決済み] リモートから<branch name>とマージするように構成が指定されていますが、そのような参照は取得されませんでしたか?
-
[解決済み] VSTS Git Fetch Failed with exit code: 128
-
[解決済み] GitHubです。パーミッションが拒否されました (公開鍵)。
-
[解決済み] git リモートリポジトリには、ローカルブランチにマージされていないコミットが含まれています。
-
[解決済み] "fatal: This operation must be run in work tree." というメッセージが表示されるのはなぜですか?
-
[解決済み] リモートプル中にすべてのタグをフェッチするようGitのデフォルトを設定できますか?