Sử dụng peco và alias để thao tác với git nhanh hơn
Git
51
peco
2
White

BB viết ngày 27/05/2015

Peco

Gần đây lục được một bài về peco trên Kipalog, thấy hay quá nên thử ứng dụng cho git. Từ trước đến nay trên terminal để xem nội dung một git commit, chúng ta thường phải dùng git show thủ công:

git log
# Xem các commit message
# Copy commit hash
git show {commit hash}

Peco trong git config

Để rút ngắn quá trình nói trên thì mình có thể làm thông qua định nghĩa một git alias trong git config (~/.gitconfig)

[alias]
        sw = "!f() { \
          local candidates=$(git log --oneline); \
          local message=$(echo \"$candidates\" | peco); \
          local hash=$(echo \"$message\" | cut -d\" \" -f1 ); \
          git show \"$hash\"; \
        };f"

Ở đây để thực hiện một loạt câu lệnh bash, mình gói vào một function f và thực thi ở cuối cùng

"!f() {...};f"

Bây giờ câu lệnh mới sẽ là

git sw

giao diện peco sẽ tự động mở và có thể type để tìm commit !

Peco với zsh alias

Với cùng một mục đích như trên, mình cũng có thể đăng ký một alias vào ~/.zshrc (shell ở đây là zsh)

alias -g C='`git log --oneline | peco | cut -d" " -f1`'

Từ bây giờ để xem nội dung git commit thì chỉ cần git show C. Thật là tiện ! Thậm chí cách này có một ưu điểm là có thể dùng luôn với git reset --hard như là: git reset --hard C, mình có thể reset đến commit tuỳ ý.

Cách làm này cũng có thể ứng dụng trong git reflog thay cho git show

alias -g R='`git reflog | peco | cut -d" " -f1`'

Git reflog là một command khá hay, mình sẽ nói về trường hợp sử dụng trong lần sau

Ứng dụng khi checkout mà có quá nhiều branch

Mở rộng cách làm bên trên, mình định nghĩa thêm 1 alias nữa cho zsh

alias -g B='`git branch -a | peco --prompt "GIT BRANCH>" | head -n 1 | sed -e "s/^\*\s*//g"`'

Khi này nếu ở trong một repo có rất nhiều branch, mình chỉ cần

git checkout B

gõ xong và ấn Enter là giao diện peco sẽ xuất hiện để bắt đầu tìm kiếm và lựa chọn.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

BB

4 bài viết.
4 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
48 7
Tôi xin tổng hợp các cách dùng git stash tôi hay sử dụng Lưu lại thay đổi Git stash được sử dụng khi muốn lưu lại các thay đổi chưa commit, thườ...
BB viết gần 3 năm trước
48 7
White
19 2
Khi bạn vừa thêm một commit vào git tree, và chợt nhận ra commit vừa rồi bị sai, không hoàn chỉnh hoặc có vấn đề, bạn sẽ muốn "undo" commit đó. Ở đ...
BB viết gần 3 năm trước
19 2
White
17 3
Chúng ta hẳn là đều rất hay dùng git add trong khi làm việc. Vậy bạn có để ý sự khác nhau của 3 câu lệnh dưới đây ? bash git add . git add u . ...
BB viết hơn 2 năm trước
17 3
Bài viết liên quan
White
48 7
Tôi xin tổng hợp các cách dùng git stash tôi hay sử dụng Lưu lại thay đổi Git stash được sử dụng khi muốn lưu lại các thay đổi chưa commit, thườ...
BB viết gần 3 năm trước
48 7
White
10 2
Xin chào các bạn. Chắc hẳn mỗi chúng ta đều đã từng phát triển app sử dụng API của bên thứ 3, và chắc mọi người đều biết là hầu hết các API service...
Hải Nguyễn viết 1 năm trước
10 2
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
4 bài viết.
4 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!