Gitのサブコマンドを、作成する
「git mine merged <マージ済みのブランチ名>」という Git のサブコマンドを作成してみます。このコマンドは、マージ済みのブランチ名を指定して、ブランチの名前にmergedをつけるという単純なものです。これは Git のサブコマンドを高速に作れるようになるための練習です。
といっても、以下の内容の「git-mine」という名前でパスの通ったところに配置するだけです。Git のサブコマンドの場合、ファイル名はかならず git- のプレフィックにします。簡単ですね。
#!/usr/bin/env ruby # -*- coding: utf-8 -*- require "rubygems" require "thor" class GitMine < Thor include Thor::Actions desc "merged BRANCH_NAME", "rename a branch name, 'name' -> 'merged/name' in Git" def merged(branch_name) if `git branch`.strip.split(/\s+/).grep(branch_name).empty? say "error: not exist branch #{branch_name}" return 1 end cmd = "git branch -M #{branch_name} merged/#{branch_name}" run cmd end end GitMine.start
それで、これからサブコマンドが必要になったら、上記の GitMine を修正して、以下のような記述を追加すれば OK になります。簡単ですね。
desc "special", "special command!!" def special say "This is a very special command!!" end
これで Git のサブコマンドを高速に作成できるようになりました。
--- 参考URL
- Home・erikhuda/thor Wiki: https://github.com/erikhuda/thor/wiki
--- PR広告
記事を読んでくださり、ありがとうございます。もしよろしければ、この記事の著者が提供している無料のサービス「かくってる?」をお試しください。
- かくってる?: http://cocktailq.herokuapp.com/