『現學現忘』Git基礎 — 26、給Git命令設定別名

繁華似錦Fighting發表於2022-05-12

1、什麼是Git命令的別名

Git中命令很多,有些命令比較長,有些命令也不好記,也容易寫錯。

例如:你有沒有經常敲錯命令?比如git status?如果敲git st就表示git status那就簡單多了。

Git 並不會在你輸入部分命令時,自動推斷出你想要執行的命令。 如果不想每次都輸入完整的Git命令,可以通過 git config 檔案來輕鬆地為每一個命令設定一個別名。

也就是給status命令配置別名,告訴Git,以後st就表示status

總結:什麼是別名?

別名用於建立對映到較長命令的較短命令。就和Linux命令設定別名一樣。

2、別名的全域性配置

(1)配置全域性別名

我們就以上面說的git status命令為例進行演示。

我們只需要敲一行命令,告訴Git,以後st就表示status

# 1.檢視工作目錄檔案狀態
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
nothing to commit, working tree clean

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git st
git: 'st' is not a git command. See 'git --help'.

The most similar commands are
        status
        reset
        stage
        stash
        svn

# 可以看到執行git st命令的時候,提示“st”不是git命令。

# 2.給他git status 設定別名
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git config --global alias.st status

# 3.再次檢視工作目錄檔案狀態
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
nothing to commit, working tree clean

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git st
On branch master
nothing to commit, working tree clean

我們可以看到git status命令設定完別名後,別名和原命令都可以使用。

說明:

  • --global引數是全域性引數,也就是這些命令在這臺電腦的所有Git倉庫下都有用。
  • 我們之前說配置使用者簽名的時候,--global引數是在系統使用者目錄下的.gitconfig檔案中進行配置。
    配置別名的內容如下:
    [user]
      name = sun_wk
      email = sun_wk@126.com
    [alias]
      st = status	# 這裡就是配置的別名
    
  • --global引數配置的是全域性引數,也就是針對該系統使用者,對該系統中所有的Git倉庫的配置。
    換句話說,就是加上--global引數,該別名對本機中所有的Git倉庫都管用。

(2)刪除全域性別名

有兩種方式:

  1. 開啟系統使用者目錄下的.gitconfig檔案,把該別名手動刪除。
  2. 使用命令列刪除,執行命令:git config --global --unset alias.st

提示:刪除別名之後,別名失效。

3、別名的區域性配置

(1)配置區域性別名

還是以git status命令為例進行演示。

基本上和全域性別名的配置一樣,就是把--global引數換成--local,或者就是去掉不寫。(不寫預設就是執行--local引數)

# 下面進行簡單說明
# 1.檢視工作目錄檔案狀態,使用git st不可以
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git st
git: 'st' is not a git command. See 'git --help'.

The most similar commands are
        status
        reset
        stage
        stash
        svn

# 2.配置別名
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git config alias.st status

# 3.再次使用git st,檢視工作目錄檔案狀態
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git st
On branch master
nothing to commit, working tree clean

說明:

  • 沒有加--global引數,預設在本地版本庫中的配置檔案進行配置,所以只針對該倉庫起作用。
  • 我們之前說配置使用者簽名的時候,本地版本庫的配置檔案為.git/config檔案。
    現在檢視該檔案如下:
    [core]
      repositoryformatversion = 0
      filemode = false
      bare = false
      logallrefupdates = true
      symlinks = false
      ignorecase = true
    [alias]
      st = status	# 這裡就是配置的區域性別名
    

(2)刪除區域性別名

有兩種方式:

  1. 開啟當前Git倉庫目錄下的.git/config檔案,把該別名手動刪除。
  2. 使用命令列刪除,執行命令:git config --unset alias.st

提示:刪除別名之後,別名失效。

4、刪除所有別名

(1)刪除所有全域性別名命令:

$ git config --global --remove-section alias

(2)刪除所有區域性別名命令:

$ git config --remove-section alias

5、小練習

我們上一篇文章介紹了,如何修改Git歷史版本資訊內容和顏色的顯示。

如:git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %C(cyan)%s %C(magenta)(%cr) %C(bold blue)<%an>%Creset'

我們就把上命令配置別名,執行命令如下:

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %C(cyan)%s %C(magenta)(%cr) %C(bold blue)<%an>%Creset'"

執行git lg命令,顯示效果如下:

image

當然你也可以把別名定義為log

總結:

隨著你繼續不斷地使用 Git,可能也會經常使用別名命令,所以建立別名這種偷懶的辦法我們是贊成的。

補充:

git config --global color.ui true:讓Git顯示顧色,會讓命令輸出看起來更醒目。(效果沒有上面手動配置的顏色顯示豐富)

相關文章