cmder và "chiêu" khi làm việc với git trên Windows

Bạn thường xuyên sử dụng git? và bạn thích command line hơn GUI? dưới đây là 1 số “chiêu” giúp bạn tăng tốc độ khi làm việc với git trên Windows

Quickly, create branch

Bạn thường xuyên lấy title của issue làm branch? okay mình cũng thường xuyên làm vậy 😁, vậy nên mình viết cái gcb này để đỡ tốn thời gian typing.

gcb = git checkout -b

Cmder is your best friend

cmder is a Portable console emulator for Windows, và nếu bạn chưa biết, cmder như là 1 phiên bản cải tiến của cmd trên windows với nhiều chức năng mở rộng như multiple tabs, copy & paste Ctrl C Ctrl V, alias, …

okay, cũng bắt đầu với 1 số “chiêu” dưới đây hen!

1. Cmder context menu

đây là chiêu dùng để open cmder ở folder hiện tại bằng context menu.

bạn mở cmd as admin tại folder chứa cmder và execute lệnh bên dưới:

cmder.exe /register ALL

ngoài ra bạn vẫn có thể xài command cmder trên address bar nếu như quen với cách đó.

2. Cmder tabs

y hệt chrome, Ctrl + T để mở tab mới, Ctrl + W để đóng tab, Ctrl + {number} để switch tab.

cmder tab

3. Cmder alias

cmder tab

dùng alias để show all aliases và alias {alias}={command} để set alias. Sử dụng alias /reload để “kích hoạt” alias mà không cần đóng và mở lại cmder.

ví dụ bạn muốn tạo alias cho checkout command:

alias gc=git checkout $*

$* dùng để pass toàn bộ option phía sau alias vào command. Nếu không có nó thì nếu bạn type:

gc -b create-my-new-branch

thì cmder chỉ thực hiện tới gc mà thôi.

4. Cmder alias for git

dưới đây là 1 số alias mà mình set cho git:

ga=git add .
gb=git branch $*
gc=git checkout $*
gcm=git commit -m $*
gf=git fetch $*
gl=git log --oneline --all --graph --decorate  $*
gm=git merge $*
gp=git pull $*
gpm=git pull origin master
gpo=git pull origin $*
gps=git push $*
gpso=git push origin $*
gs=git status
gst=git stash save -u $*

bạn cũng có thể type trực tiếp vào alias config tại folder chứa cmder:

\path\to\cmder\config\user_aliases.cmd

okay, vậy thử xem nó nhanh hơn thế nào trong TH sau đây nhé: dừng toàn bộ công việc hiện tại lại và hotfix 1 bug trên prod (giả sử master là prod).

flow sẽ là:

  1. check status: git status (mình hay làm z 😉)
  2. stash (including untracked files): git stash -u
  3. checkout master: git checkout master
  4. tạo nhánh hotfix: git checkout -b hotfix\typo
  5. fix bug then commit: git add . && git commit -m "fix typo at ..."
  6. push to remote: git push origin hotfix\typo

nếu alias, tất nhiên flow cũng sẽ là vậy 🤣, chỉ có điều bạn sẽ gõ nhanh hơn mà thôi LOL:

  1. gs
  2. gst
  3. gc master
  4. gc -b hotfix/typo
  5. ga && gcm "..."
  6. gpso hotfix/typo

5. Tips khác

  • find branch: gb | grep "some keyword"
  • copy current branch: gb --show-current | clip. Bạn có thể alias --show-current để nhanh hơn.

Bạn hãy tự khám phá và tìm thêm các cách cho mình he :)

Ngoài lề

  1. cmder khá tốt nhưng tốc độ khởi động chậm của nó là 1 vấn đề. Hy vọng sẽ sớm được cải thiện, hoặc new terminal sẽ làm tốt hơn cmder.
  2. Dạo này giang hồ thường xuyên blame các nhân vật trên internet về việc nói đan xen tiếng Anh và tiếng Việt. Bản thân mình cũng không thích việc đó và cũng không ủng hộ việc nói đan xen như vậy, nhưng có thể thông cảm được. Trong các bài viết của mình thường xuyên viết đan xen Việt - Anh, điều này không hẳn là thói quen mà là những từ ngữ đó khá quen thuộc với giới lập trình viên, và có thể dùng từ tiếng Anh cũng dễ hiểu hơn so với dịch ra tiếng Việt nữa :)