在 Posh-Git 中更改“git status”输出颜色
Posted
技术标签:
【中文标题】在 Posh-Git 中更改“git status”输出颜色【英文标题】:Changing "git status" output colors in Posh-Git 【发布时间】:2013-08-27 12:38:37 【问题描述】:在Posh-Git 中,当我在存储库中运行“git status”时,更改和未跟踪文件的颜色是深红色,当我尝试将它们配置为“正常”红色时。我想这样做是因为我有一个黑色背景的控制台,所以深红色很难阅读。
我四处搜索,似乎需要进行两项配置更改:
在 $GitPromptSettings 中将“WorkingForegroundColor”和“UntrackedForegroundColor”从“DarkRed”更改为“Red”。
在 git config 中将“color.status.changed”和“color.status.untracked”更改为红色。
根据我的阅读,这就是我需要做的所有事情,但“git status”的结果仍然是深红色。
这是一个摘要,以证明我按照我的要求设置它们,也许有人可以发现错误:
【问题讨论】:
问题是这个主题,这个颜色是怎么做的? 【参考方案1】:git status
的输出由您的 .gitconfig 文件控制。 changed
和 untracked
文件的默认值是暗淡的 Red
,但您可能需要 Red Bold
,它是提示中的亮(默认)红色。
将以下内容添加到您的 .gitconfig 文件中:
[color]
ui = true
[color "status"]
changed = red bold
untracked = red bold
added = green bold
对于将来引用此内容的任何其他人,可接受的颜色为 normal
、black
、red
、green
、yellow
、blue
、magenta
、cyan
和 @ 987654336@ 以及单个可选修饰符 bold
、dim
、ul
、blink
或 reverse
。如果给定两种颜色,第一种是前景,第二种是背景。
【讨论】:
谢谢你——我的人生已经圆满了!给任何可能遇到问题的人的说明,直到我安装了更新版本的 posh-git。 这适用于 Windows 上的任何版本的 git,而不仅仅是豪华 git。 这甚至适用于 powershell。 +1 提高我的工作效率。 使用git config <color-to-update> “foreground-color background-color attribute”
模式,如git config --global color.status.changed "cyan normal bold"
什么是ui=true?检查here,部分颜色。【参考方案2】:
这里只有一种方法可以将 DarkRed 更改为 Red:修改控制台窗口本身的配色方案。据我所知,git 会在列表中选择“第一个”红色(恰好是黑暗的......)。因此,只需为其增加 R 值即可。
您可以直接在窗口(属性 -> 颜色)或注册表中执行此操作。提示是不同的故事:它使用 PS 颜色名称,其中 Red = Red,而不是 DarkRed...
【讨论】:
这很棒。我不知道属性中的颜色集是一个调色板,一切都可以从中汲取。 我不会撒谎,我对从属性窗口更改红色非常怀疑......但是,完全准确。很好的答案=) 效果很好!如果您使用的是标准控制台(不是 ISE),也适用于 Powershell。它适用于 git status 和 posh-git。我只是去了属性-> 颜色,单击深红色并将其红色值更改为 255。现在效果很好。非常感谢! 帮助很大。我对红色状态信息感到非常恼火。一直试图改变它,但没有奏效。简单地将红色值设为 15 对我来说非常有用。 运行 powershell。最有帮助。谢谢。【参考方案3】:要将列出的未跟踪和修改文件的颜色更改为更易读的黄色,您可以将其添加到您的 ~/.gitconfig 文件中:
[color "status"]
untracked = bold yellow
changed = bold yellow
同时更新 GitPrompt.ps1 以将未跟踪显示为黄色可能是个好主意:
UntrackedForegroundColor = [ConsoleColor]::Yellow
WorkingForegroundColor = [ConsoleColor]::Yellow
编辑:GitPrompt.ps1 位于 PowerShell posh-git 文件夹中。
【讨论】:
这是一个很好的答案,其复杂性和第 3 方的东西要少得多。绝对是+1。但是,我想在那里再看到两件事。第一个是对可以在颜色术语中设置的其他属性的引用和完整列表(如果有的话)。第二个是如何设置任意颜色的建议(最好是十六进制值,但可用颜色数字列表也很棒)。第二个当然是 if 是可能的(根据我的经验,这是一个相当大的“if”。)【参考方案4】:除了@WarrenB 的回答。要更改状态的颜色和 git diff(新行和删除行)的颜色,您必须在 .git/config 文件中包含以下内容:
[color]
ui = true
[color "status"]
changed = red bold
untracked = red bold
added = green bold
[color "diff"]
old = red bold
new = green bold
“差异”选项使您可以使用明亮(粗体)的红色和绿色。参考:https://git-scm.com/docs/git-config#git-config-colordiff
【讨论】:
【参考方案5】:您可以通过修改 PowerShell posh-git 模块文件夹中的 GitPrompt.ps1 文件的源来更改这些。我遇到了同样的问题,只是删除了此文件中第 30 行周围定义的颜色中的“深色”:
BeforeIndexForegroundColor= [ConsoleColor]::**Green**
BeforeIndexBackgroundColor= $Host.UI.RawUI.BackgroundColor
IndexForegroundColor = [ConsoleColor]::**Green**
IndexBackgroundColor = $Host.UI.RawUI.BackgroundColor
WorkingForegroundColor = [ConsoleColor]::**Red**
WorkingBackgroundColor = $Host.UI.RawUI.BackgroundColor
UntrackedText = ' !'
UntrackedForegroundColor = [ConsoleColor]::**Red**
Powershell colors 这个列表也很有用。
【讨论】:
这用于更改显示缩写状态的命令提示符上的颜色(例如:[master +1 ~0 -0 | +2 ~0 ~0])。但它并没有改变“git status”命令输出的颜色。 BartekB 的建议也没有改变。 在这两个地方都为我工作,但只有在获得最新版本的 posh-git 使用 powershell 和来自 git Bash 的标准 git 对我来说效果很好(无论如何,Posh 是什么,哈哈)以上是关于在 Posh-Git 中更改“git status”输出颜色的主要内容,如果未能解决你的问题,请参考以下文章
Git status - 有没有办法只在特定目录中显示更改?