[小技] Gitの操作をインタラクティブに取り消す
2245 ワード
Git操作を頻繁に間違えるおっちょこちょい(例: @sei40kr )な人に。
インタラクティブフィルターを導入
fzf, peco などのインタラクティブなフィルターを導入しておきます。
.zshrc
zplug 'junegunn/fzf-bin', from:gh-r, as:command, use:'*linux*amd64*', rename-to:fzf
zplug 'junegunn/fzf', use:'shell/{completion,key-bindings}.zsh'
関数を定義
.zshrc
_git-undo-fzf() {
git reflog 2>/dev/null | \
perl -lpe 's/^\S+\s+HEAD@\{(\d+)\}/$1/' | \
fzf | \
awk -F ':' '{ print "HEAD@{" $1 "}" }' |
xargs git reset --hard
}
zle -N _git-undo-fzf
.zshrc
_git-undo-fzf() {
git reflog 2>/dev/null | \
perl -lpe 's/^\S+\s+HEAD@\{(\d+)\}/$1/' | \
fzf | \
awk -F ':' '{ print "HEAD@{" $1 "}" }' |
xargs git reset --hard
}
zle -N _git-undo-fzf
fzf を使った例です。選択された項目を標準出力で返す仕様であれば、 fzf
を書き換えるだけで応用可能です。
キーを割り当て
.zshrc
bindkey '^x^z' _git-undo-fzf
.zshrc
bindkey '^x^z' _git-undo-fzf
Ctrl-X + Ctrl-Z で...
おしまい。
Author And Source
この問題について([小技] Gitの操作をインタラクティブに取り消す), 我々は、より多くの情報をここで見つけました https://qiita.com/sei40kr/items/208c981a84800e850680著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .