Bash

如何著色git的輸出?

  • March 23, 2022

有沒有辦法為 git(或任何命令)著色輸出?

考慮:

baller@Laptop:~/rails/spunky-monkey$ git status
# On branch new-message-types
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   app/models/message_type.rb
#
no changes added to commit (use "git add" and/or "git commit -a")
baller@Laptop:~/rails/spunky-monkey$ git add app/models

baller@Laptop:~/rails/spunky-monkey$ git status
# On branch new-message-types
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   app/models/message_type.rb
#

輸出看起來相同,但資訊完全不同:文件已從 unstaged 變為 staged for commit。

有沒有辦法給輸出著色?例如,未暫存的文件是紅色的,暫存的文件是綠色的?

甚至Changes not staged for commit:是紅色和# Changes to be committed:綠色?

在 Ubuntu 中工作。

編輯:Google搜尋發現這個答案很好:git config --global --add color.ui true

但是,有沒有更通用的解決方案可以為命令輸出添加顏色?

[color]您可以在您的部分中創建一個部分~/.gitconfig,例如以下內容

[color]
 diff = auto
 status = auto
 branch = auto
 interactive = auto
 ui = true
 pager = true

您還可以很好地控制您想要以何種方式著色的內容,例如

[color "status"]
 added = green
 changed = red bold
 untracked = magenta bold

[color "branch"]
 remote = yellow

我希望這能讓你開始。當然,您需要一個支持顏色的終端。

另請參閱此答案,了解直接從命令行添加著色的方法。

引用自:https://unix.stackexchange.com/questions/44266