redwarrior’s diary

C#, ASP.NET, WEB, G*などの雑多な情報

Gitで存在しないリモートリポジトリの設定情報を削除する

Gitを始めようとした時に、いきなりサーバーのリポジトリをGitにするってことは無いと思います。GitHubクラウドのサービスを使える場合は別ですがそうでない場合は、大体はローカルのマシンにGitをインストールして、ローカルリポジトリから始めると思います。

しかし、ローカルリポジトリではpushコマンドを試すことが出来ないので、サーバー上のリポジトリが欲しくなります。GitHubや(以下略)を使わない場合は、何らかの手段でローカルのマシンにリモートリポジトリをたてます。

しばらくして、共有サーバー上にGitリポジトリが用意されることになり、設定を変更して接続先を変更した場合、git branch -aなどで存在しないリモートリポジトリが表示されることになります。

自分でローカルにたてた(そして諸々の事情で既に存在しない)リモートリポジトリの設定が残っているのです。リモートリポジトリには存在しないので、pushしても効果がない。今回はそんな場合の対処方法を調べてみました。

やり方は、簡単です。以下のコマンドを実行するだけです。

> git fetch -p

参考サイトでは、Windows以外の環境で実行していますが、Windows環境でもGit Bashを使えば同じです。 ちなみに、TortoiseGitの日本語版では、「刈り取り」と翻訳されているようです。

これだけだと内容が寂しいので表にまとめてみました。

リモートリポジトリ削除方法

ローカル リモート(表示) リモート(実際) 削除コマンド
存在しない 存在する 存在しない git fetch -p
存在しない 存在する 存在する git push origin :ブランチ名

参考サイト

git fetchしたときにremoteに存在しないbranchはlocalでも削除する - Qiita