40
37

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Gitのチートシートを git ? で呼び出すコマンドを作ると作業が捗る

Last updated at Posted at 2015-12-04

CLIでGit のコマンドやオプションを覚えれば、いろんな所で潰しが効きます。しかし、やりたい事がハッキリしているのに、コマンドが出てこない時、ありません?

いちいち調べるのはバカらしいし、エイリアスにすると他で潰しが効きづらくなるし、SourceTree などのGUIに逃げるのは、なんか負けた気がする……。

そこで、"git ?と打ち込んだら、自分用のチートシートが出てくる Git のサブコマンドを書く" ことにしたのですが、これが意外と捗るのでご紹介します。

"git ?" の作り方

Git では、パスの通った所に git-{コマンド} という名前で実行ファイルを置くと、サブコマンドを独自に作ることができます。

試しに git ? コマンドを作ってみましょう。

コマンド作成
# $PATHを確認
$ echo $PATH

# パスの通った所に git-? を作成 (例: /usr/local/bin/)
$ sudo vi /usr/local/bin/git-?
/usr/local/bin/git-?
#!/bin/sh
cat ~/.git-cheatsheet
# 実行権限を付けておく
$ sudo chmod +x /usr/local/bin/git-?
$ git ?
cat: ~/.git-cheatsheet: そのようなファイルやディレクトリはありません

これでコマンドの準備はできました。
あとは ~/.git-cheatsheet にチートシートの内容を書いていくだけ!

チートシートの例

例えば私は始め、Gitに慣れるために 以下のような感じのチートシートを用意しました。

.git-cheatsheet
---
Git cheatsheet
---
[基本]
* git init                      リポジトリを作成
* git checkout (branch)         ブランチを切り替え
* git branch (new_branch)       新規ブランチを作成
* git checkout -b (new_branch)  新規ブランチを作成して切り替え
* git add (file)                ファイルをインデックスに追加
* git add .                     現在のディレクトリ以下をインデックスに追加
* git commit                    ファイルをコミット
* git commit -m "message"       メッセージを指定してコミット
* git commit --amend            直前のコミットメッセージを修正

[stash]
* git stash save                スタッシュに一時的に保存
* git stash save -u             untrack なファイルも含めてスタッシュに保存
* git stash pop                 スタッシュから取り出し

作業中に Git でちょっと困ったら git ? を叩き、コマンドをカンニングするという訳です。もし新しいコマンドを覚えたくなったら、このチートシートに追記すればOK。

今でも branchcheckout -b のように、"似たような事なのに、コマンドが違う" という時なんかは、なかなか重宝します。

ちなみに私のカンペは、時間が経つにつれてコマンドが増えていき、現在では Git flow や、pruneupdate-index のような込み入ったコマンドも入ってます。学んでいくと共に、チートシートも進化しますね。

invalid key エラーが出る場合

error: invalid key: pager.?

環境によっては、チートシートの表示前に上記のエラーが出てくることがあります。手元では、Gitのバージョンによって出たり出なかったりしてました (例: 2.4.5 →出る、2.6.2 →出ない) 。

恐らく、設定を読み込む際に ? 記号を解釈できるか否かに依るものかと思いますが、これのエラーが出てもチートシートが見られない訳じゃないので、「Gitのパージョンを変えてみる」「気にしない」などが解決策でしょうか。(ぇ

利点

かれこれ1年半ほど使ってますが、

  • 初心者から上級者まで、幅広くカンタンに使える
  • 迷ったら git ? と打つだけなので、覚えやすくお手軽 (深い話は --help で見る)
  • 調べる手間が省け、作業がより捗る
  • コマンドを学んでいる実感がある

自分専用のチートシートを書くのは正直手間ですが、**"チートシート = コマンドの意味を学習するノート""**という位置づけでやってみると、結構効果があります。

よって、特に Git 初心者にはオススメです。小慣れてきて、git ? を叩く頻度が減ってきたら 一人前とか。

40
37
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
40
37

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?