freestyle-mokumoku.connpass.com
スライド書いてたら飽きてきてテーマ変えたくなってきた
— Pocke(ぽっけ) (@p_ck_) 2016年4月16日
資料なしでLTすることにした
— Pocke(ぽっけ) (@p_ck_) 2016年4月16日
「スライド作るのめんどくさかったのでテキストでLTします」 #port_mokumoku
— マジカルツイッター戦士末ちゃん (@asmsuechan) 2016年4月16日
今日のLT資料です https://t.co/hdbHmPKoOs
— Pocke(ぽっけ) (@p_ck_) 2016年4月16日
後から見返した時 / 他の人が見た時、何を話したかさっぱりわからないと思うので発表したことについてブログを書きます。
.gitconfig
dotfiles/.gitconfig at master · pocke/dotfiles
このへんにあります。 この中のaliasの便利設定について話しました。
alias とは
長いコマンドに短縮名をつけることが出来ます。
例えば、
- branch -> br
- checkout -> co
などなど。
git status べんり
git status って、デフォルトだと表示がとても冗長です。
$ git status On branch master Your branch is up-to-date with 'origin/master'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: .vimrc Untracked files: (use "git add <file>..." to include in what will be committed) hoge no changes added to commit (use "git add" and/or "git commit -a")
そこで、--short --branch オプションをつけてみます
$ git status --short --branch ## master...origin/master M .vimrc ?? hoge
このように簡略化されつつ必要な情報はすべて表示されます。便利。
またaliasでは単純にコマンドを短くすることだけでなく、オプションを付与することも可能です。
例えば、以下のようにaliasを設定することで常に上記のオプションを使用してgit statusをgit stで実行することができます。
# In .gitconfig file [alias] st = status --short --branch
$ git st
## master...origin/master
M .vimrc
?? hoge
このaliasのいいところは、「見なくてもいい情報が見えなくなる」ことだと思います。
見なくてもいい情報があると、その部分に目が惑わされてしまい、本当に見たいstatusを把握するまでに時間がかかってしまいます。
そのため、私はこの設定を推奨しています。
tig べんり
tigは便利です。入れましょう。
私はコミットログのビューワとしてしか使っていませんが、addとかcommitとかも出来るらしいです。
committia.vim べんり
Vim のプラグインです。
コミットする時にカッコイイVimが立ち上がるようになって便利です。
Vimでコミットメッセージを書いている人は入れましょう。
git grep べんり (もしくは、 / べんり)
git grepという便利なコマンドがあります。レポジトリ内のファイルに対してgrepします。便利なので使いましょう。
また、以下のような設定を.zshrcなどに書いておくと、/だけでgrepできて、Vimっぽくて便利です
function is_git_dir() { git rev-parse --show-toplevel > /dev/null 2>&1 } function /() { if is_git_dir; then git grep $@ else grep $@ fi }
$ / commit .gitconfig: ci = commit -v .gitconfig: fix = commit --amend -v .gitconfig: fixa = commit --amend -v -a .gitconfig: ca = commit -v -a .vim/colors/p.vim:hi link gitcommitSummary Normal .vimrc: NeoBundle 'rhysd/committia.vim' .vimrc:" committia.vim {{{ .vimrc:if neobundle#tap('committia.vim') .vimrc: let g:committia_hooks = {} .vimrc: function! g:committia_hooks.edit_open(info) .vimrc: imap <buffer><C-d> <Plug>(committia-scroll-diff-down-half) .vimrc: imap <buffer><C-u> <Plug>(committia-scroll-diff-up-half) .vimrc: nmap <buffer><C-d> <Plug>(committia-scroll-diff-down-half) .vimrc: nmap <buffer><C-u> <Plug>(committia-scroll-diff-up-half) .vimrc:AutoCmd FileType gitcommit if getline(1) == '' | startinsert | endif .vimrc:AutoCmd FileType markdown,text,gitcommit setl spell .zshrc: git init && git ci --allow-empty -m 'first commit'
ghq べんり
導入記事が沢山あるのでそちらをご覧下さい。 これについてはあんまり話しませんでした(ちょっとだけ見せた)
git = !git べんり
$ git git git status
みたいに打ってしまっても、意図どおりgit statusが効くという魔法のおまじないです。
以下のように~/.gitconfigに記載します。
[alias] git = !git
再帰的に実行するので、何段でもgitを重ねることが出来ます。
git ってシェルに打ち込んで、「私は何をしたいんだっけ……?」って少し悩んでから「コミットしたいんだった!」って思い出してgit commitって打ち込んだらgit git commitが実行されてしまう私のような人におすすめです。
特急もくもく1号
主催者の人から「宣伝しておいてー」って頼まれたのでLTで宣伝しました。
今度行きます。特急列車内でもくもく会するらしいです。