[解決済み] git remote prune - 思っていたより剪定されたブランチが表示されませんでした。
質問
manページより。
Deletes all stale tracking branches under <name>. These stale branches have already been removed from the remote repository referenced by <name>, but are still locally available in "remotes/<name>".
というわけで
git push origin :staleStuff
を実行し
git remote prune origin
しかし、刈り込まれたのは1つのローカルブランチだけでした。これらのブランチのいくつかは私が作成したものであり、いくつかは同僚が作成したものです。これは、私が最初にそれらのブランチを正しく追跡していなかったことを示しているのでしょうか?
どのように解決するのですか?
を使用する場合
git push origin :staleStuff
を使うと、自動的に
origin/staleStuff
を実行すると
git remote prune origin
を実行したとき、あなたは他の誰かによって削除されたいくつかの枝を剪定したことになります。それよりも、あなたの同僚が今すぐ
git prune
を実行して、あなたが削除した枝を取り除く必要があります。
では、具体的にどのような
git remote prune
は何をするのでしょうか?主な内容: ローカルブランチ (トラッキングブランチではない) には
git remote prune
コマンドでは触れないので、手動で削除する必要があります。
では、理解を深めるために実例を挙げてみましょう。
2つのブランチを持つリモートリポジトリがあるとします。
master
と
feature
. 両方のブランチで作業していると仮定して、その結果、ローカルリポジトリにこれらの参照があるとします(混乱を避けるために完全な参照名を与えています)。
-
refs/heads/master
(短い名前master
) -
refs/heads/feature
(短い名前feature
) -
refs/remotes/origin/master
(短い名前origin/master
) -
refs/remotes/origin/feature
(短い名前origin/feature
)
さて、典型的なシナリオです。
-
他の開発者が
feature
にマージします。master
にマージしfeature
ブランチをリモートリポジトリから削除します。 -
デフォルトでは
git fetch
(またはgit pull
) を使用する場合、ローカルリポジトリから参照は削除されないので、これら 4 つの参照はすべて残ったままです。 -
それらをクリーンアップすることを決定し
git remote prune origin
. -
git は以下を検出します。
feature
ブランチはもう存在しないのでrefs/remotes/origin/feature
は 古い ブランチであり、削除されるべきものです。 -
これで3つのリファレンスができました。
refs/heads/feature
を含む 3 つの参照、つまりgit remote prune
は削除されないからです。refs/heads/*
の参照を削除しません。
リモート追跡ブランチに関連付けられたローカルブランチを、以下の方法で識別することが可能です。
branch.<branch_name>.merge
設定パラメータで指定します。このパラメータは、実際には何も動作するために必要なものではありません (おそらく
git pull
を除いて)動作に必要なものではありませんので、欠落している可能性があります。
(コメントから有用な情報を得たので、例とランプを更新しました)
関連
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] 新しいローカルブランチをリモートの Git リポジトリにプッシュし、それを追跡するにはどうすればよいのでしょうか?
-
[解決済み] Git ですべてのリモートブランチをクローンする方法
-
[解決済み] Git のリモートブランチを作成する方法を教えてください。
-
[解決済み] Git フェッチ リモートブランチ
-
[解決済み] すべてのGitブランチを取得する方法
-
[解決済み] リモートにないトラッキングブランチを削除
-
[解決済み] 古いリモート git ブランチのクリーンアップ
-
[解決済み】既存の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 実装 サイバーパンク風ボタン
おすすめ
-
Note: Git prompts このリポジトリで別の git プロセスが実行されているようです ....
-
Git学習まとめ(2)コミットには何も追加されていないが、未追跡のファイルは存在する
-
解決策正しいアクセス権を持っていることと、リポジトリが存在することを確認してください。
-
git reset --hardとgit reset --softの違いについて
-
giteaを使ったGitサービスの構築
-
[解決済み] Gitのプルーニングとは何ですか?
-
git push issues
-
[解決済み] Git: リモートブランチの情報を更新する
-
[解決済み] gitは "サイレントモード "で動作しますか?
-
[解決済み] Git の 'master' ブランチを 'release' にリネームするには?