gitで、リモートサーバに対してタグを同期させるにはどうしたらいいですか?
質問
ローカルの git タグをリモートのタグと同期させる方法はありますか?つまり -- 作成時に新しいタグを取得するだけでなく(通常通り
fetch
-ing/
pull
-ing) だけでなく、リモートで不要になったタグを整理したり、他の人が
git push -f
のタグを削除します。
私が知っているのは
git fetch remotename
の後に
git remote prune remotename
を追加することで、ブランチに対して同様の動作をさせることができます。
どのように解決するのですか?
...また、リモートではもはやないタグをプルーンする
git fetch
は、Git 2.17 (Q2 2018)で取得した、ローカルに保持されている古いタグを取り除くための便利なショートハンドです。
ローカルに保持されている古いタグを取り除くための便利なショートハンドです。
を参照してください。
コミット 6317972
,
コミット 97716d2
,
コミット e249ce0
,
コミット 627a129
,
コミット d0e0747
,
コミット 2c72ed7
,
コミット e1790f9
,
コミット 59caf52
,
コミット 82f34e0
,
コミット 6fb23f5
,
コミット ca3065e
,
コミット bf16ab7
,
コミット eca142d
,
コミット 750d0da
,
コミット 0711883
,
コミット ce3ab21
,
コミット aa59e0e
(2018年02月09日)による
Ævar Arnfjörð Bjarmason (
avar
)
.
(によって統合されました。
ジュニオ・C・ハマノ--。
gitster
--
で
コミット c1a7902
, 2018年03月06日)
<ブロッククオートフェッチ を追加します。
--prune-tags
オプションとfetch.pruneTags
コンフィグ
を追加します。
--prune-tags
オプションを
git-fetch
と共に
fetch.pruneTags
という設定オプションと
-P
ショートハンド(
-p
は
--prune
).
のいずれかを行うことができます。
git fetch -p -P
git fetch --prune --prune-tags
git fetch -p -P origin
git fetch --prune --prune-tags origin
あるいは単純に
git config fetch.prune true &&
git config fetch.pruneTags true &&
git fetch
の代わりに、もっと冗長な
git fetch --prune origin 'refs/tags/*:refs/tags/*' '+refs/heads/*:refs/remotes/origin/*'
この機能の前に というユースケースをサポートするのは苦痛でした。 ブランチの両方を持つリポジトリから と タグが削除される を定期的に削除し、ローカルでの参照を上流に反映させる必要があります。
仕事では、ロールアウトごとにレポにデプロイメントタグを作成します。 そこには たくさん があるので、パフォーマンス上の理由から数週間以内にアーカイブされます。 パフォーマンス上の理由で数週間以内にアーカイブされます。
この変更なしには
でそのようなレポを一元的に設定することは困難です。
/etc/gitconfig
(でそのようなレポを一元的に設定することは困難です。
で一元的に設定することは困難です。) そのため
fetch.prune=true
をグローバルに設定し、さらに各
レポに設定する必要があります。
git -C {} config --replace-all remote.origin.fetch "refs/tags/*:refs/tags/*" "^\+*refs/tags/\*:refs/tags/\*$"
これで、単純に
fetch.pruneTags=true
で
/etc/gitconfig
を実行するユーザーもいます。
を実行しているユーザーと、"
git pull
を実行しているユーザは、自動的に私が望む刈り込みのセマンティクスを得ることができます。
を実行しているユーザーは、自動的に私が望む剪定セマンティクスを得ることができます。
2021年4月更新、Git for Windows 2.30.1および GitHub Desktop 2.8
を設定すると動作します。
prune
と
pruneTags
のオプションがあります。
cd C:\path\to\local\repo
git config fetch.prune true
git config fetch.pruneTags true
次にGitHub DeskopのFetch originをクリックすると、ログが表示されます。
2021-04-28T20:25:21.244Z - info: [ui] Executing fetch:
git -c credential.helper= -c protocol.version=2 fetch --progress --prune origin (took 2.986s)
...そして、リモートに存在しないローカルタグは消えてしまいます!
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] リモートタグを削除する方法を教えてください。
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
gitlabの紹介と使い方
-
[解決済み] リモートリポジトリに存在しないローカルのgitタグを削除する
-
gitの利用(ssh鍵の作成とgithubの利用)。
-
[解決済み] Jenkins Pipeline Git SCM を認証情報でチェックアウトする?
-
[解決済み] gitでコミット間を前進・後退させる方法は?
-
[解決済み] GitHubで、既存のレポを追加するときにすべてのブランチをプッシュするにはどうしたらいいですか?
-
[解決済み] IntelliJのShelveとGit stashの違いは何ですか?
-
[解決済み] Git: リモートブランチの情報を更新する
-
[解決済み] ローカルレポとリモートレポを接続する
-
[解決済み] Git: 警告: 参照名 'master' はあいまいです。