サブモジュールのリポジトリのルートからの相対パスが path/to/submodule の場合、リポジトリのルートで次のようなコマンドを実行すればいいと思う。
v1.8.5以上
$ git submodule deinit path/to/submodule $ git rm path/to/submodule $ rm -rf .git/modules/path/to/submodule
v1.8.3以上v1.8.5未満
$ git submodule deinit path/to/submodule $ git config -f .gitmodules --remove-section submodule.path/to/submodule $ git rm path/to/submodule $ rm -rf .git/modules/path/to/submodule
v1.8.3未満
$ git config -f .git/config --remove-section submodule.path/to/submodule $ git config -f .gitmodules --remove-section submodule.path/to/submodule $ git rm --cached path/to/submodule $ rm -rf .git/modules/path/to/submodule $ rm -rf /path/to/submodule
ちなみに、これまで使ってたgitはDebian7のパッケージ管理システム(apt-get)でインストールしたやつだったけど、バージョンは1.7.10.4と古かったので、サブモジュールの削除も面倒。この際バージョンアップすることにした。他にも表示が親切になるらしいし。
まずコンパイルに必要なパッケージを入れる。
$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
git最新版のDebian公式パッケージはないので、ソースからコンパイルする。
https://code.google.com/p/git-core/downloads/list
から最新版をダウンロードする。この記事を書いている時点では1.8.5.4が最新だ。ダウンロードしたら解凍して、コンパイル&ルート権限でインストール。
% wget https://git-core.googlecode.com/files/git-1.8.5.4.tar.gz % tar zxvf git-1.8.5.4.tar.gz % cd git-1.8.5.4 % ./configure % make % su - # make install
特に迷うこともなくあっさり完了。
ちなみに僕はzsh使いだけれど、git submodule deinitが補完で出てこない。gitのソースにはzsh用の補完関数スクリプトが添付されている(解凍したソースのcontrib/completion/git-completion.zsh)けど、これを使っても補完候補に出てこないので注意。
余談だけれどgitのバージョン上げたらgitコマンドの出力がモノクロからカラーになってて超便利。中でもgit diffで差分を色分けしてくれるのは素晴らしいね。
参考サイト:
git submoduleを今風な感じで削除する - Qiita
git submoduleについてのメモ - rcmdnk's blog
How do I remove a Git submodule? - Stack Overflow
※この記事について指摘・意見・提案・感想などありましたら下のコメント欄にどうそ。
0 件のコメント:
コメントを投稿