現在很多人使用像是 oh-my-zsh 這類工具,這些工具內建了許多非常有用的功能,包括 Git 快捷鍵。別誤會,這些工具真的很好。但我認為理解背後的運作原理是非常重要的。你可以隨意使用各種工具,但從根本上建立自己的工作流程是有真正價值的。

如果你對我為什麼認為 應該自己編寫工具 感到好奇,你可以查看我在 這裡 的想法。不過現在,我想告訴你 Bash 函數別名 如何使 Git 工作流程變得更快、更簡單,甚至更好。我希望這篇文章能讓你興奮地挖掘你的 shell 的 rc 檔,開始編寫自己的自定義函數和別名,不僅僅是為了 Git,而是為了你所有的工作!


1. Git 別名

首先,讓我們簡化一些常見的 Git 命令。以下是我設置的一些別名,讓終端使用生活變得更輕鬆。每次都輸入一條長命令為什麼不可以縮短到兩個字母呢?

alias gs="git status"    # 顯示 Git 狀態
alias ga="git add ."     # 將所有檔案加入暫存區
alias gc="git commit -m" # 帶訊息提交
alias gp="git push"      # 將當前分支推送到遠端
alias gl="git pull"      # 從遠端分支拉取
alias glog="git log --oneline --graph --all --decorate" # 以單行格式查看 Git 日誌
alias gco="git checkout" # 切換分支
alias gcb="git checkout -b" # 創建並切換到新分支
alias gd="git diff --cached" # 查看暫存變更的差異
alias grh="git reset --hard HEAD" # 硬重置到最新提交
alias gb="git branch -vv"  # 以單行格式顯示分支與最後提交
alias gf="git fetch --all" # 獲取所有遠端分支

這些別名節省了幾秒鐘,但這些時間是累積的。而且,使用起來也很好。


2. Bash 函數以實現更複雜的 Git 工作流程

現在,讓我們透過一些自定義 Bash 函數 來提升工作效率,這些函數可以自動化您的工作流程中的更多步驟,讓您避免鍵入多個命令而遺漏任何步驟。

2.1. 創建新分支並推送

gnew() {
  git checkout -b "$1"
  git push -u origin "$1"
}
# 用法: gnew branch_name

2.2. 快速提交並推送

gquick() {
  git commit -am "$1"
  git push
}
# 用法: gquick "commit message"

2.3. 基於主分支變基當前分支

grebase() {
  git fetch
  git rebase origin/main
}
# 用法: grebase

2.4. 撤銷最後一次提交

gundo() {
  git reset --soft HEAD~1
}
# 用法: gundo

2.5. 壓縮多次提交

gsquash() {
  git reset --soft HEAD~"$1"
  git commit --amend
}
# 用法: gsquash 3 (壓縮最近的 3 次提交)

2.6. 同步分支與上游

gupdate-fork() {
  git fetch upstream
  git checkout main
  git merge upstream/main
  git push origin main
}
# 用法: gupdate-fork

2.7. 針對先前提交進行互動式變基

grebasei() {
  git rebase -i HEAD~"$1"
}
# 用法: grebasei 3 (互動式變基最近的 3 次提交)

3. 一般工作流程提升功能

這些最後的函數增強了一般 Git 工作流程,讓事情變得更加高效。

3.1. 顯示 Git 樹狀圖

glogtree() {
  git log --graph --oneline --decorate --all
}
# 用法: glogtree

3.2. 重置分支到遠端狀態

gresetremote() {
  git fetch origin
  git reset --hard origin/"$(git rev-parse --abbrev-ref HEAD)"
}
# 用法: gresetremote

4. 將別名和函數添加到你的 .bashrc.zshrc

如果你希望這些函數和別名能在不同的終端會話中持續存在,你需要將它們添加到你的 .bashrc.zshrc。這裡是如何做的:

  1. 打開你的 shell 配置檔:
    nano ~/.bashrc  # 或 ~/.zshrc
  2. 將別名和函數粘貼到該檔案中。
  3. 儲存後,刷新你的 shell:
    source ~/.bashrc  # 或 ~/.zshrc

這些只是讓 Git 為你工作,而不是你為 Git 工作的方式之一。只需花幾分鐘調整你的 shell 設置,你就可以節省大量的鍵入和點擊時間。那麼你呢?


原文出處:https://dev.to/jimmymcbride/why-i-bash-git-and-why-you-should-too-3752

按讚的人:

共有 0 則留言