Sta*_*tec 3 git bash command-line .bash-profile
我目前已使用以下bash脚本配置了git,以显示我所在的分支(以及用于显示我所在目录的命令行):
export PS1="\[\033[36m\]\u\[\033[m\]@\[\033[32m\] \[\033[33;1m\]\w\[\033[m\] (\$(git branch 2>/dev/null | grep '^*' | colrm 1 2)) \$ \n$ "
export PS2="$ "
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种方法可以显示“正在合并”状态,以便在合并时merging
在命令行中也显示该信息(在哪个分支上)。我已经在其他地方看到过这个,所以我很确定有可能,但是不知道如何。
您可以在此git-ps1脚本中看到一个更完整的状态指示器,其中包含重新设置和合并的内容。
local g="$(git rev-parse --git-dir 2>/dev/null)"
if [ -n "$g" ]; then
local r
local b
if [ -d "$g/rebase-apply" ]
then
if test -f "$g/rebase-apply/rebasing"
then
r="|REBASE"
elif test -f "$g/rebase-apply/applying"
then
r="|AM"
else
r="|AM/REBASE"
fi
b="$(git symbolic-ref HEAD 2>/dev/null)"
elif [ -f "$g/rebase-merge/interactive" ]
then
r="|REBASE-i"
b="$(cat "$g/rebase-merge/head-name")"
elif [ -d "$g/rebase-merge" ]
then
r="|REBASE-m"
b="$(cat "$g/rebase-merge/head-name")"
elif [ -f "$g/MERGE_HEAD" ]
then
r="|MERGING"
b="$(git symbolic-ref HEAD 2>/dev/null)"
Run Code Online (Sandbox Code Playgroud)
对于合并的一部分,它确实测试MERGE_HEAD
文件,如建议通过Zeeker。