GitPro
  • Introduction
  • 開始
    • 關於版本控制
    • Git 的簡史
    • Git 基礎要點
    • 安裝Git
    • 初次設定Git
    • 取得說明文件
    • 總結
  • Git 基礎
    • 取得Git儲存庫
    • 提交更新到儲存庫
    • 檢視提交的歷史記錄
    • 復原
    • 與遠端協同工作
    • 標籤
    • 提示和技巧
    • 總結
  • Git 分支
    • 何謂分支
    • 分支的新建與合併
    • 分支的管理
    • 利用分支進行開發的工作流程
    • 遠端分支
    • 分支的衍合
    • 小結
  • 伺服器上的 Git
    • 協議
    • 在伺服器上部署 Git
    • 生成 SSH 公開金鑰
    • 架設伺服器
    • 公共訪問
    • GitWeb
    • Gitosis
    • Gitolite
    • Git 守護進程
    • Git 託管服務
    • 小結
  • 分散式 Git
    • 分散式工作流程
    • 為專案作貢獻
    • 專案的管理
    • 小結
  • Git 工具
    • 選擇修訂版本
    • 互動式暫存
    • 儲藏 (Stashing)
    • 重寫歷史
    • 使用 Git 做 Debug
    • 子模組 (Submodules)
    • 子樹合併
    • 總結
  • Git 客製化
    • Git 配置
    • Git 屬性
    • Git Hooks
    • Git 強制策略實例
    • 總結
  • Git 與其他系統
    • Git 與 Subversion
    • 遷移到 Git
    • 總結
  • Git 內部原理
    • 底層命令 (Plumbing) 和高層命令 (Porcelain)
    • Git 物件
    • Git References
    • Packfiles
    • The Refspec
    • 傳輸協議
    • 維護及資料復原
    • 總結
Powered by GitBook
On this page
  • 自動補齊
  • Git 命令別名

Was this helpful?

  1. Git 基礎

提示和技巧

在結束Git基礎這個章節前,我們將介紹有一些將會使你的Git使用經驗更簡單、方便和親切的提示和技巧。或許很多人從未運用過這些技巧,我們也不會假設你在本書的後續章節會使用它們。但你也許會想知道如何使用它們。

自動補齊

如果你用的是 Bash shell,你可以啟動Git本身寫好的自動補齊腳本。下載Git原始碼,切到contrib/completion目錄;可以看到檔案名為git-completion.bash。將它複製到你的家目錄,並加入以下指令到你的.bashrc檔案裡:

source ~/git-completion.bash

如果你想為所有使用者都自動設置Bash shell的補齊功能,在Mac系統上將這個腳本複製到/opt/local/etc/bash_completion.d目錄,若你使用Linux系統複製到 /etc/bash_completion.d/目錄。這兩個目錄中的脚本,都會在 Bash 啟動時自動載入。

如果你在Windows使用Git Bash,也就是利用Windows with msysGit安裝Git,自動補齊功能已預先設定好,可以直接使用。

在你輸入Git指令時,只要按下Tab鍵,便會列出所有合適的指令建議:

$ git co<tab><tab>
commit config

然後按下Tab鍵兩次,便會提示commit和config這些可用指令。當再輸入m<tab>便會自動補齊git commit。

指令的選項也可以自動補齊,這或許是更實用的功能。舉例而言,當你下git log指令時,若忘記該輸入哪個選項,只要輸入開頭字元然後按下Tab去看看可能的選項:

$ git log --s<tab>
--shortstat  --since=  --src-prefix=  --stat   --summary

這是個好用的小技巧,或許可以省下許多輸入和查文件的時間

Git 命令別名

如果僅輸入命令的部份字元,Git並不會幫你推論出你想要下的完整命令。如果你想偷懶,不想輸入Git命令的所有字元,你可以輕易地利用git config設定別名(alias)。你也許會想要設定以下這幾個範例:

$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status

這些例子顯示出,你可以只輸入git ci,取代輸入git commit。隨著你深入使用Git,將會發現某些命令用得頻繁;這時不妨建立新的別名提高使用效率。

利用這個技術將有助於創造出你認為應該存在的命令。舉例而言,為了提高取消暫存檔案的便利性,你可以加入以下命令:

$ git config --global alias.unstage 'reset HEAD --'

這將使得下列兩個命令完全相等:

$ git unstage fileA
$ git reset HEAD fileA

使用別名看起來更清楚。另外,加入last別名也是很常用的技巧:

$ git config --global alias.last 'log -1 HEAD'

如此一來,將可更簡單地看到最新的提交訊息:

$ git last
commit 66938dae3329c7aebe598c2246a8e6af90d04646
Author: Josh Goebel <dreamer3@example.com>
Date:   Tue Aug 26 19:48:51 2008 +0800

    test for current head

    Signed-off-by: Scott Chacon <schacon@example.com>

你可以發現,Git只是簡單地在命令中替換你設定的別名。然而,你不僅希望執行Git 的子命令,而想執行外部命令。在這個情形中,你可以加入!字元在所要執行的命令前。這將有助於設計運作於Git儲存庫的自製工具。這個範例藉由設定git visual別名去執行gitk:

$ git config --global alias.visual '!gitk'
Previous標籤Next總結

Last updated 5 years ago

Was this helpful?