find_git_branch () { local dir=. head until [ "$dir" -ef / ]; do if [ -f "$dir/.git/HEAD" ]; then head=$(< "$dir/.git/HEAD") if [[ $head = ref:\ refs/heads/* ]]; then git_branch=" | ${head#*/*/}" elif [[ $head != '' ]]; then git_branch=" | (detached)" else git_branch=" | (unknow)" fi return fi dir="../$dir" done git_branch='' } PROMPT_COMMAND="find_git_branch; $PROMPT_COMMAND" PS1="\u@\h:\w\$git_branch\$ "
把上面的代码加入到 .bashrc下,以后进入终端cd到有git仓库的地方就会显示当前分支名(我的为a2),否则显示detached
这样就不用担心进错分支了