1. sonatard

    No comment

    sonatard
Changes in body
Source | HTML | Preview
@@ -1,68 +1,68 @@
## 背景
pecoを導入してからgit向けのフィルターを作成しようと考えていたのですが、gitには多くのコマンドが存在するためにそれぞれのフィルターを作成すると覚えるのが大変になったり、ショートカットやグローバルエイリアスを食いつぶしてしまい困るということがわかりました。
そこで**この2つさえあればgitを便利に使うことができる!**というフィルターを作成してみました。
## コミットやブランチのハッシュをフィルターする
gitを使っていると特定のコミットを指定したくなることが多くあります。
`git reset`,`git rebase`,`git log`,`git show`,`git diff`,`git cherry-pick`などなど
このときに`HEAD`やその1つ前なら`HEAD~`などで対応できますが、多く遡る場合は`git log`をしてからハッシュをコピーして貼り付けるという手間がかかることをしていました。
そこでこれを改善するためにpecoを用いて`git log`からコミットのハッシュを容易に絞り込めるフィルターを作成しました。
入力する際はコミットログで絞り込むこともできますし、ブランチ名からも絞り込むことができます。
```zsh
function git-hash(){
git log --oneline --branches | peco | awk '{print $1}'
}
```
またグローバルエイリアスかショートカットとして登録すると便利に使うことができます。
グローバルエイリアスの例
```zsh
alias -g H='$(git-hash)'
```
### 使用例
以下のコマンドを実行するとpecoのフィルターが実行されます。
`git diff`のように複数のハッシュを選択する必要がある場合にはpecoのフィルタリング画面で`C-SPC`を押すことにより複数選択が可能です。
```zsh
$ git diff H
```
## 編集されたファイルをフィルターする
主に`git add`のために使いますが、もちろん`git checkout`やその他のコマンドの`--`とも使うことができます。
```zsh
function git-changed-files(){
git status --short | peco | awk '{print $2}'
}
```
先ほどと同様にグローバルエイリアスかショートカットとして登録すると便利に使うことができます。
グローバルエイリアスの例
```zsh
alias -g F='$(git-changed-files)'
```
### 使用例
以下のコマンドを実行するとpecoのフィルターが実行されます。
`git add`も先ほどと同様に`C-SPC`複数ファイルをadd可能です。
```zsh
$ git add F
```
## その他参考
-上記ではグローバルエイリアスに登録して利用する方法を紹介しましたが、他にも使い方は多くあるので自分にあった方法で利用してみてください。
+上記ではグローバルエイリアスに登録して利用する方法を紹介しましたが、他にもショートカットとして登録するなど別の使い方があるので自分にあった方法を探してみてください。
-
+ショートカットの登録方法などは以下
[pecoの基礎の応用](http://qiita.com/sona-tar/items/47800e52f972b17f73bb)