我已经攻击了我的bash提示符(理论上)告诉我我目前正在使用什么git分支。但输出表明出现了问题:
22:07 (seesaw|REBASE-i) infwb $git branch
* master
wkg
这是我的.bash_profile文件中的相关代码(我会在这个问题的最后添加一个更大的部分):
PS1="$GRAY\$(date +%H:%M)\$(__git_ps1) $GREEN\W$YELLOW \$"
如您所见,$(__git_ps1)
返回(seesaw|REBASE-i)
,即使我不再有跷跷板分支! (我确实有一个,它与我在github上的远程跷跷板分支有一个rebase问题。我想,我解决了这个问题,git branch -r seesaw
成功删除了本地副本。)
我很确定(seesaw|REBASE-i)
告诉我出了问题,但我不知道它是什么。
感谢您提出的任何建议。 (接下来是.bash_profile的大块)
-------from .bash_profile ---------
## ----- from http://en.newinstance.it/2010/05/23/git-autocompletion-and-enhanced-bash-prompt/
# Set git autocompletion and PS1 integration
if [ -f /usr/local/git/contrib/completion/git-completion.bash ]; then
. /usr/local/git/contrib/completion/git-completion.bash
fi
if [ -f /opt/local/etc/bash_completion ]; then
. /opt/local/etc/bash_completion
fi
## ----- end
GRAY="\[\033[1;30m\]"
YELLOW="\[\033[1;33m\]"
GREEN="\[\033[0;32m\]"
PS1="$GRAY\$(date +%H:%M)\$(__git_ps1) $GREEN\W$YELLOW \$"
----------------
附录
@cdhowie和@manojlds,我对你的git知识印象深刻!
git rebase --abort
导致信息更改为(seesaw)
。不幸的是,我在硬盘上找不到rebase-merge
(或.git
)。我在Mac上,它为许多FOSS工具做了奇怪的事情。 (我确实在/ usr / local / git找到了git。)/ Library / Application Support或〜// Library / Application Support都没有。
(稍后)
事实证明一切都很好。不知怎的,git rebase --abort
导致跷跷板分支重新出现(我没想到!),命令让我把跷跷板当作我当前的分支。从那里,我知道该怎么做。
答案 0 :(得分:4)
基于对@cdhowie的评论,我怀疑__git_ps1
正在以不同方式处理git rebase场景。所以我查看了源代码,发现了以下几行:
...
if [ -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")"
...
因此,只要.git/rebase-merge
存在,您将获得“错误”分支,即使您已移至另一个分支。
git rebase --abort
会修复它。或删除.git/rebase-merge