如何通过添加日期时间来配置 Git bash 提示?
Posted
技术标签:
【中文标题】如何通过添加日期时间来配置 Git bash 提示?【英文标题】:How to configure Git bash prompt by adding datetime? 【发布时间】:2012-10-11 16:48:28 【问题描述】:我的 msysgit Git bash 命令行提示现在看起来像这样:
GitUserName@WorkStationName WorkSpacePath (BranchName)
我想在那一行前面加上一个时间戳,比如HH:mm
(hours:minutes
)。
有谁知道我可以轻松做到这一点吗?
【问题讨论】:
【参考方案1】:seangwright 给出的answer 有效,但它会覆盖您的全局配置。如果您查看\Git\etc\profile.d\git-prompt.sh
内部,您会看到:
if test -f ~/.config/git/git-prompt.sh
then
. ~/.config/git/git-prompt.sh
else
PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]' # set window title
PS1="$PS1"'\n' # new line
# ...
这意味着您可以仅覆盖您的用户帐户的配置,这可能是首选,因为对 Git Bash 的任何更新都不会覆盖该文件。您所要做的就是创建~/.config/git
文件夹(如果它尚不存在),然后将您的配置保存在文件git-prompt.sh
(完整路径~/.config/git/git-prompt.sh
)中。脱离最新的 Git Bash 配置,它可能看起来像这样:
PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]' # set window title
PS1="$PS1"'\n' # new line
# THE FOLLOWING LINE ADDS THE TIMESTAMP
PS1="$PS1"'\[\033[35m\]\D%F %T '
PS1="$PS1"'\[\033[32m\]' # change to green
PS1="$PS1"'\u@\h ' # user@host<space>
PS1="$PS1"'\[\033[35m\]' # change to purple
PS1="$PS1"'$MSYSTEM ' # show MSYSTEM
PS1="$PS1"'\[\033[33m\]' # change to brownish yellow
PS1="$PS1"'\w' # current working directory
if test -z "$WINELOADERNOEXEC"
then
GIT_EXEC_PATH="$(git --exec-path 2>/dev/null)"
COMPLETION_PATH="$GIT_EXEC_PATH%/libexec/git-core"
COMPLETION_PATH="$COMPLETION_PATH%/lib/git-core"
COMPLETION_PATH="$COMPLETION_PATH/share/git/completion"
if test -f "$COMPLETION_PATH/git-prompt.sh"
then
. "$COMPLETION_PATH/git-completion.bash"
. "$COMPLETION_PATH/git-prompt.sh"
PS1="$PS1"'\[\033[36m\]' # change color to cyan
PS1="$PS1"'`__git_ps1`' # bash function
fi
fi
PS1="$PS1"'\[\033[0m\]' # change color
PS1="$PS1"'\n' # new line
PS1="$PS1"'$ ' # prompt: always $
【讨论】:
【参考方案2】:我发现使用 \Git\etc\profile.d\git-prompt.sh
文件,您可以添加如下所示的行,以便在提示符中添加日期时间
PS1="$PS1"'\[\033[35m\]\D%F %T '
(格式细节见here)
我的提示目前看起来像这样
2015-11-08 23:48:08 Sean@pc-01 /c/dev/projects
PS1='\[\033]0;$MSYSTEM:$PWD//[^[:ascii:]]/?\007\]' # set window title
PS1="$PS1"'\n' # new line
PS1="$PS1"'\[\033[35m\]\D%F %T '
PS1="$PS1"'\[\033[32m\]' # change to green
PS1="$PS1"'\u@\h ' # user@host<space>
PS1="$PS1"'\[\033[35m\]' # change to purple
#PS1="$PS1"'$MSYSTEM ' # show MSYSTEM
PS1="$PS1"'\[\033[33m\]' # change to brownish yellow
PS1="$PS1"'\w' # current working directory
if test -z "$WINELOADERNOEXEC"
then
GIT_EXEC_PATH="$(git --exec-path 2>/dev/null)"
COMPLETION_PATH="$GIT_EXEC_PATH%/libexec/git-core"
COMPLETION_PATH="$COMPLETION_PATH%/lib/git-core"
COMPLETION_PATH="$COMPLETION_PATH/share/git/completion"
if test -f "$COMPLETION_PATH/git-prompt.sh"
then
. "$COMPLETION_PATH/git-completion.bash"
. "$COMPLETION_PATH/git-prompt.sh"
PS1="$PS1"'\[\033[36m\]' # change color to cyan
PS1="$PS1"'`__git_ps1`' # bash function
fi
fi
PS1="$PS1"'\[\033[0m\]' # change color
PS1="$PS1"'\n' # new line
PS1="$PS1"'$ ' # prompt: always $
注意:使用$(/bin/date)
的答案对我不起作用,因为我认为我无法找到\Git\usr\bin\date.exe
【讨论】:
【参考方案3】:如果您指的是当前时间/日期,那么this example 可以提供帮助:
PS1="\n\[\033[35m\]\$(/bin/date)\n\[\033[32m\]\w\n\[\033[1;31m\]\u@\h: \[\033[1;34m\]\$(/usr/bin/tty | /bin/sed -e 's:/dev/::'): \[\033[1;36m\]\$(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's: ::g') files \[\033[1;33m\]\$(/bin/ls -lah | /bin/grep -m 1 total | /bin/sed 's/total //')b\[\033[0m\] -> \[\033[0m\]"
它使用$(/bin/date)
,是一个多行提示,包含日期/时间、完整路径、用户和主机、活动终端,甚至文件计数和空间使用情况。
它说明了如何将日期集成到自己的 git 提示符中。
OP deblendewimcomments:
我还想知道如何更改它而不立即在提示符中运行它。 将配置文件更改为:
if test -z "$WINELOADERNOEXEC" then PS1='\[\033]0;$MSYSTEM:\w\007 \033[32m\]\u@\h \[\033[33m\w$(__git_ps1)\033[0m\] $ ' else PS1='\[\033]0;$MSYSTEM:\w\007 \033[32m\]\u@\h \[\033[33m\w\033[0m\] $ '
进入
if test -z "$WINELOADERNOEXEC" then PS1='\[\033]0;$MSYSTEM:\w\007 \[\033[36m\]\t \[\033[32m\]\u@\h \[\033[33m\w$(__git_ps1)\033[0m\] $ ' else PS1='\[\033]0;$MSYSTEM:\w\007 \[\033[36m\]\t \[\033[32m\]\u@\h \[\033[33m\w\033[0m\] $ '
【讨论】:
感谢 VonC。该链接绝对帮助了我!我还想知道如何在不立即在提示符中运行它的情况下更改它。将配置文件从:if test -z "$WINELOADERNOEXEC" then PS1='\[\033]0;$MSYSTEM:\w\007 \033[32m\]\u@\h \[\033[33m\w$(__git_ps1)\033[0m\] $ ' else PS1='\[\033]0;$MSYSTEM:\w\007 \033[32m\]\u@\h \[\033[33m\w\033[0m\] $ '
更改为 if test -z "$WINELOADERNOEXEC" then PS1='\[\033]0;$MSYSTEM:\w\007 \[\033[36m\]\t \[\033[32m\]\u@\h \[\033[33m\w$(__git_ps1)\033[0m\] $ ' else PS1='\[\033]0;$MSYSTEM:\w\007 \[\033[36m\]\t \[\033[32m\]\u@\h \[\033[33m\w\033[0m\] $ '
我在上面评论中所说的代码可以在这里找到:C:\Program Files (x86)\Git\etc\profile(文件被称为配置文件)在第 155 行附近的某处
以上是关于如何通过添加日期时间来配置 Git bash 提示?的主要内容,如果未能解决你的问题,请参考以下文章
Vue CLI 3.X 在windows中使用Git Bash创建项目时,出现交互提示符不工作的问题