6

我的 msysgit Git bash 命令行提示现在看起来像这样:

GitUserName@WorkStationName WorkSpacePath (BranchName)

我想在那条线前面有一个时间戳,比如HH:mmhours:minutes)。

有谁知道我怎么能轻松做到这一点?

4

3 回答 3

7

我发现使用该文件\Git\etc\profile.d\git-prompt.sh,您可以添加如下所示的行以将日期时间添加到您的提示中

PS1="$PS1"'\[\033[35m\]\D{%F %T} '(如这里所见的格式细节)

我的提示目前看起来像这样

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

于 2015-11-09T04:50:25.027 回答
3

如果按日期表示当前时间/日期,则此示例可以提供帮助:

 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\]"

带有日期的 git 提示符

它使用$(/bin/date)并且是一个多行提示,包含日期/时间、完整路径、用户和主机、活动终端,甚至文件计数和空间使用情况。

它说明了如何将日期集成到自己的 git 提示符中。


OP deblendwim评论

我还想知道如何在不立即在提示符中运行它的情况下更改它。
将配置文件从以下位置更改:

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\] $ ' 
于 2012-10-22T06:08:57.703 回答
1

seangwright给出的答案有效,但它会覆盖您的全局配置。如果你往里面看,你会看到:\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 $
于 2020-11-18T23:04:21.477 回答