PIYO - Tech & Life -

Gitで追跡されていないファイルを消したりignoreしたり

Git Ruby

Gitを使い始めてから使っている俺々スクリプトの紹介。Gitで管理したくないファイルを消したり.gitignoreに追加したりを簡単にするスクリプトです。

git status -s

$ git statusの出力って色々うるさくないですか?あれがすげー見づらいので僕は$ git status -sを使っています。

もっと言うとglobalな.gitconfigにエイリアスを書いてあるのでこんな風に使えるようにしています。

$ git s

おまけ

# ~/.gitconfig
[alias]
	co = checkout
	s = status -s --branch
	br = branch
	di = diff
	d = diff
	dc = diff --cached

追跡されていないファイルを無視指定する

ローカルで自動生成されたファイルを無視したりしたいときありますよね。手動で書くのは面倒なので、$ git sの出力から?? なものだけを抽出するスクリプトを噛ませて使うと便利です。

このスクリプトをパスが通ったところに置きます。sedとか使えばスクリプトを使う必要もないしシェルスクリプトでも全然できるんですが、楽なのでRubyで書きました。

git-untrack-files.rb

例えばこんな状況化だとします。

$ git s
M  Hoge
A  HogeHoge
 M HogeHogeHoge
?? Piyo
?? PiyoPiyo/

さっきのスクリプトを通すとこう。

$ git s | git-untrack-files.rb
Piyo
PiyoPiyo/

で、こうしましょう。

$ git s | git-untrack-files.rb >> .gitignore

追跡されていないファイルを削除する

さっきのスクリプトを使ってもできます。

$ git s | git-untrack-files.rb | xargs rm -rf

が、それも面倒だったので専用スクリプト書きました。

git-remove-untrack.rb

$ git s | git-remove-untrack.rb