[解決済み] Git から古いリモートブランチを削除する
質問
Gitでbashのオートコンプリートを使用すると、もう持っていない古いリモートのブランチが表示され続けてしまいます。私が
git branch -la
を実行すると、古いリモートとブランチが表示され、一方
git branch -l
では表示されません。A
ls .git/refs/remotes/
もそれらを表示します。しかし、それらは私の
.git/config
を実行しても表示されません。
git remote show
.
では、今オートコンプリートリストが長すぎるため、どのようにそれらを取り除くか。
私はすでに試しました。
git reflog expire --expire=now --all
git gc --prune=now
rm .git/refs/remotes/theoldremote
git remote prune theoldremote
レポを再クローンすればいいということも知っていますが、それはただのズルです ;-)
どのように解決するのですか?
Git は、リモートリポジトリでブランチが削除された場合、(ローカルの)リモートトラッキングブランチを自動的に削除しません。さらに、V2.0.1 より前のリモート追跡ブランチは、git の設定からリモートを削除しても削除されない場合がありました(VonC の回答を参照)。
リモートリポジトリのひとつについて、古くなったリモート追跡ブランチ(リモートリポジトリで削除されたブランチ)を削除するには、次のコマンドを実行します。
git remote prune <remote>
マニュアルページを引用する場合や
git remote
:
プルーン
name>の下にあるすべての古い追跡ブランチを削除します。これらの古いブランチは によって参照されているリモートリポジトリからはすでに削除されています。 が、ローカルではまだ "remotes/<name>" で利用可能です。
dry-runオプションでは、どのブランチが剪定されるかを報告しますが、実際に剪定は行いません。 実際に刈り込まれることはありません。
しかし、あなたの質問からすると、あなたは手動で
.git/refs/remotes/theoldremote
を削除したようなので、Git はリモート追跡ブランチが所属していたリモートリポジトリのことを知らなくなったのです。これは本来のやり方ではありません。
リモートリポジトリを削除する通常の方法は、次のように実行します。
git remote rm <remote>
これは、リモートを
.git/config
からリモートを削除し、リモートを追跡していたブランチを削除します。
の下のディレクトリを削除するだけなら
.git/refs/remotes/
の下のディレクトリを削除しただけでは、ブランチが残ってしまいます。その場合は、手動で削除する必要があります。
git branch -rd <remote>/<branchname>
オプション
-r
はリモートブランチを削除するために必要です。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に '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 をアップロード ! [リモート拒否] dev -> dev (受信前のフックが拒否されました)
-
解决[email protected]。パーミッションが拒否されました (publickey)。リモートリポジトリから読み取れませんでした
-
Git error: cannot spawn ssh.の回避策。そのようなファイルやディレクトリはありません
-
コミットメッセージが空だったため、コミットを中止する git commit
-
[解決済み] 古いリモート git ブランチのクリーンアップ
-
[解決済み] Gitから無効なリモートブランチの参照を削除するには?
-
[解決済み】Gitのfetchやpullで自動プルーニングを行う。
-
[解決済み] git branch -av' は、もはや存在しないリモートブランチを表示します。
-
[解決済み] git diff を stdout に書き出すには?
-
[解決済み] 新サーバーへのGitプッシュ/クローン