スニペットを登録してGitでのミスを防いだ話

今回のブログ担当は石川です。6月といえば雨という印象ですが、今年の松江は雨が降らない日が続いています。

さて、業務でのソースコードのバージョン管理にGitを使っています。 その中で、何度かこんなコミットをしました。

「不要なファイルを間違えてpushしてしまったので消します...」といった内容です。

gitでファイルをcommitをする前の段階でしっかりチェックしていれば防げる話なのですが、それでも時々見落としがありました。 幸い動作確認のために追加していたファイルなど、あまり問題にならないレベルのものしか「間違えてpushしました...」となることはなかったのですが、この調子だったらその内何かやらかしてもおかしくないと危機感を覚えていました。

1度目にミスをしてから、次に同じミスをしないためのルールを決めました。

ファイルをaddする際は git add -u で変更があった部分のみをaddし、ファイル追加したいときは単体でファイルを指定して git add sample.txt とする

ですがそれでもついつい-uをつけ忘れて、そのままgit statusで確認した際も見逃してしまい、pushしてしまうことがありました。

いくらルールを作ってもそれを守らない(守れない)と意味がないですね。

そのルールを確実に守るためにはどうしたら良いか考えて、 スニペット を活用することにしました。

スニペット機能

元から利用していたMacのランチャーアプリ「Alfred3」がスニペット機能を持っていたので、 Alfredにgit addというキーワードでgit add -uという内容を引き出せるようにセットしました。

スニペット機能とは、あらかじめ登録しておいたテキストを必要なときに呼び出して素早く入力できる機能です。

そして、Auto-Expansionという機能を使うように設定しました。

これは、登録しておいた短いキーワードだけ入力すれば自動的にスニペット全体が展開される機能です。要はgit addと入力したら自動でスニペットが展開される(つまりgit add -u)に変換されるという機能です。ターミナルをはじめ、テキスト入力エリアであればどこでも使えます。

そうすることで、いつも通りgit addと入力すると-uのオプションも自動でつくので、忘れることはなくなりました。 新しいファイルを追加したい場合は、意識的に-uを消して使います。

実際何が変わったのかというと、入力する文字数が3文字(スペースとハイフンとu)減っただけなのですが、それだけでも考えることなく「不要なファイルを間違えてpushしてしまったので消します...」とならないためのルールを守ることができるようになりました。

余談

gitはコマンドもいろいろな種類があり、オプションをつけると随分と長文になってしまったりします。私の記憶力では覚えることができません。 そういったコマンドを省略できるようにgit自体にもエイリアスを設定できるようになっています。

例えば、git status --short --branchというコマンドをよく使うときは、git stと入力するだけでgit status --short --branchを入力した時と同じ結果を得る...と設定しておくことができます。

私は、これで楽ができる!と思いワクワクしながらいくつかのコマンドのエイリアスを設定しました。

↓ しかし

結局、数回程度しか使いませんでした。 その理由は、純粋に私の記憶力が悪かったからです。 入力文字数は多くても、何も考えずにいる方が「楽」に思えたのです。(もちろん、速度のことを考えれば覚えてしまった方が良いのはわかりきっているのですが。)

結局、ここでやりたかったことも今はスニペット機能で補っています。

ファーエンドテクノロジーからのお知らせ(2024/04/17更新)
入門Redmine 第6版 出版記念セミナー「Redmine 8年分の新機能ふりかえり」【2024/4/18開催】
入門Redmine 第6版(2024年3月23日発売)に掲載された新機能に関する内容を執筆者・監修者が紹介します。
My Redmine 初回ご契約で「入門Redmine 第6版」プレゼントのお知らせ
Redmineのクラウドサービス「My Redmine」を初めてご契約いただいたお客様にRedmine解説書「入門Redmine 第6版」を進呈いたします。
2024年度ブランドパートナーに島根県在住のモデル ユイさんを継続起用
ユイさん(モデルスタジオミューズ所属)をファーエンドテクノロジーの2024年度ブランドパートナーとして継続して起用します。
My Redmine スタンダードプランおよびAdminサポートデスクプランの料金改定のお知らせ【2024年4月ご利用分より】
2024年4月ご利用分より、My Redmine スタンダードプラン(民間企業・個人向け及び官公庁向け)とAdminサポートデスクプランの料金を改定いたします。
Redmineの最新情報をメールでお知らせする「Redmine News」配信中
新バージョンやセキュリティ修正のリリース情報、そのほか最新情報を迅速にお届け