나는 이것을 사용하고있다 :
$(__git_ps1 '(%s)')
그러나 디렉토리를 변경하거나 새 분기를 체크 아웃 할 때 업데이트되지 않습니다. 이 별칭도 있습니다.
alias reload='. ~/.bash_profile'
샘플 실행 :
user@machine:~/dev/rails$cd git_folder/
user@machine:~/dev/rails/git_folder$reload
user@machine:~/dev/rails/git_folder(test)$git checkout master
Switched to branch 'master'
user@machine:~/dev/rails/git_folder(test)$reload
user@machine:~/dev/rails/git_folder(master)$
보시다시피 bash_profile을 다시로드하는 경우에만 올바르게 설정됩니다. 나는 이것에 많은 시간을 낭비했다. 스노우 레오파드에서 bash를 사용하고 있습니다. 도와주세요!
편집 : 당신은 GitHub의 내 dotfiles을 볼 수 있고 파일이 PS1을 설정 여기
답변
문제가 해결되었습니다.
나는하고 있었다:
export PS1="$(__git_ps1 '(%s)')"
그리고 나는해야했다 :
export PS1="\$(__git_ps1 '(%s)')"
그렇지 않으면 달러 기호를 이스케이프 처리해야합니다. 그렇지 않으면 한 번만 실행되고 대체됩니다.
답변
아마도 사용해야 할 것입니다 $PROMPT_COMMAND
답변
최신 git은 __git_ps1을 bash_completion 밖으로 이동하므로 별도로 소싱해야합니다. https://superuser.com/a/477749/66255를 참조 하십시오 .