[解決済み] リモート上に存在しないローカル追跡ブランチをプルーニングする方法
2022-03-21 06:49:26
質問
と
git remote prune origin
もうリモートにはないローカルブランチを削除することができます。
しかし、私はそれらのリモートブランチから作成されたローカルブランチも削除したいのです(それらがアンマージされているかどうかのチェックがあるとよいでしょう)。
どうすればいいのでしょうか?
どのように解決するのですか?
枝刈りした後、リモートブランチの一覧は
git branch -r
. リモート追跡ブランチを持つブランチのリストは、次のようにして取得できます。
git branch -vv
. つまり、この2つのリストを使えば、リモート追跡用ブランチのリストにないものを見つけることができるのです。
この行でうまくいくはずです(要
bash
または
zsh
標準的なBourneシェルでは動作しません)。
git fetch -p ; git branch -r | awk '{print $1}' | egrep -v -f /dev/fd/0 <(git branch -vv | grep origin) | awk '{print $1}' | xargs git branch -d
この文字列はリモートブランチのリストを取得し、それを
egrep
を標準入力で送る。 そして、リモート追跡ブランチを持つブランチをフィルタリングします(
git branch -vv
を持つものに対してフィルタリングを行い
origin
) そして、その出力の最初の列を取得して、それがブランチ名となります。 最後に、すべてのブランチ名を delete branch コマンドに渡します。
を使用しているので
-d
オプションを使用すると、このコマンドを実行したときに現在いるブランチにマージされていないブランチを削除することはありません。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] 新しいローカルブランチをリモートの Git リポジトリにプッシュし、それを追跡するにはどうすればよいのでしょうか?
-
[解決済み] git rebase の取り消し
-
[解決済み] Git のリモートブランチを作成する方法を教えてください。
-
[解決済み] ローカルファイルシステムからファイルを削除せずに、Git リポジトリからファイルを削除する
-
[解決済み] リモートにないトラッキングブランチを削除
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】ローカルリポジトリのブランチをリセットして、リモートリポジトリのHEADと同じにする
最新
-
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がローカルバージョンをリモートバージョンに置き換える
-
[解決済み] git pull リモートブランチがリモートの参照先を見つけることができない
-
[解決済み] git: fatal: リモートリポジトリから読み取れませんでした。
-
[解決済み] git が「Pull is not possible because you have unmerged files」と表示するのはなぜですか?
-
[解決済み] fatal: EOF が早い fatal: インデックスパックが失敗した
-
[解決済み] VSTS Git Fetch Failed with exit code: 128
-
[解決済み] Gitのフォルダ構造で変更・追加されたファイルのみをエクスポートする機能
-
[解決済み] マージされたGitブランチをすべて削除するにはどうすればよいですか?
-
[解決済み] リモートにないトラッキングブランチを削除
-
[解決済み] Git は、いつリモートブランチのリストを更新するのですか?