0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

🚀Gitのignore系ファイルを管理するCLIを作ってみた

Last updated at Posted at 2025-02-11

🚀 Git の ignore 系ファイルを管理する CLI を作ってみた

タイトル通り作ってみました。gig という CLI ツールです。リンクは↓より👀
https://github.com/tomatod/gig

Git のトラッキングからファイルを除外するとき、.gitignoreを使うことが多いと思いますが、そこにも書きたくない場合は.git/info/excludeに書くことが時々ありますよね。あと、今更知ったんですが、グローバルつまり全リポジトリから除外したい場合は$HOME/.config/git/ignoreに書けるとのこと🤔

後者の2つはファイル名を毎回忘れるのと、標準で出回ってるテンプレなんかも使えたらいいなーとか思いまして。日曜は奥さん外出で暇だったのもあり、ガーっと作ることにした次第です🔥

📝 どんなことができるの?

シンプルに以下のようなことができます。コマンド実行すると編集のためにエディタが起動します。使うエディタは editor (-e) オプションで任意に指定できますが、デフォルトでは git config core.editの値 > $EDITORの値 > vi の順で選択されます⏩️

スコープに応じた Git 除外ファイルの編集 (-s scope)

# .gitignore の編集 (-s file)
$ gig

# .git/info/exclude の編集 (-s local)
$ gig -s local

# $HOME/.config/git/ignore の編集 (-s global)
$ gig -s global

エディタの指定 (-e editor)

デフォルトでは git config core.editの値 > $EDITORの値 > vi の順で選択されますが、明示的に指定する場合は editor (-e) オプションで指定します。

# vim で .gitignore を編集
$ gig -e vim

# nano で .git/info/excludeを編集
$ gig -e nano -s local

カレントなレポジトリで除外されるファイルの一覧を表示

mode (-m) オプションでアクションの種類を指定します。デフォルトは edit で、list とすると Git で除外されるファイルの一覧がスコープ毎に表示されます。オプションじゃなくてサブコマンドにしたほうがスマートな気はしたのですが、ぶっちゃけ早く完成させたく🚀

$ gig -m list
--- global: /home/tarou/.config/git/ignore 
hoge

--- local: /home/tarou/gig/.git/info/exclude
bar
boo

--- file: /home/tarou/gig/.gitignore 
aiueo

テンプレートから.gitignoreを作成 (-t template)

github.com/github/gitignore からテンプレートをカレントなレポジトリに .gitignore としてコピーして編集することができます。

# Go 用のテンプレートで .gitignore を作成
gig -t community/Golang/Go.AllowList.gitignore

# Python 用の Jupyter Notebook 用テンプレートで .gitignore を作成
gig -t community/Python/JupyterNotebooks.gitignore

仕組みとしては、同レポジトリを $HOME/.config/gig/gitignore にクローンしてきて、カレントなレポジトリに対象テンプレートをコピーしてるだけです。template (-t) オプションの引数は github.com/github/gitignore からの相対パスです。GitHub で当該レポジトリを開き、使いたいテンプレートを探して開き、以下のように画像中央あたりのコピーアイコンをクリックするとクリップボードにコピーできます。

image.png

🔽 最後にインストール方法

最後まで読んでいただきありがとうございました。興味あれば使ってやってください。インストール方法は README に書いていますが、以下のとおりです。意外と使えるなと思ったので、もうちょっと改造するかもしれません。適宜コマンドの説明はgig -hか README のほうで確認いただければと思います🙏

Goユーザの方

go install github.com/tomatod/gig@latest

実行バイナリだけ欲しい方

リリースからバイナリをダウンロードできます。そこに書いていますが、OS や CPU アーキテクチャ毎に違うのでご注意を。なお、Windows では動作確認してないです🧟

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?