현재 디렉터리가 현재 디렉터리에 있을 때 GIT를 표시하라는 메시지가 표시될 수 있나요?있음/포함함폴더 .git
? 이를 수행할 수 있는 방법이 있습니까? 내 현재 프롬프트는 다음과 같이 정의됩니다.
export PS1="[\u@\h] \w $ "
따라서 내 프롬프트는 다음과 같습니다.
[user@computer] ~/workspace $
나는 그것이 다음과 같이 동적으로 보이길 원합니다.
[user@computer] ~/workspace GIT $
답변1
__git_ps1
가장 표준적인 방법은 git에서 직접 사용하는 것입니다. Ubuntu에서는 다음 경로를 통해 얻을 수 있습니다.
source /usr/lib/git-core/git-sh-prompt
## source /etc/bash_completion.d/git-prompt
#PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w $(__git_ps1 "(%s)")\$ '
$(__git_ps1 "(%s)")
저장소의 현재 상태(현재 분기, 진행 중인 리베이스, 병합 등)를 알려주는 추가된 섹션을 확인할 수 있습니다.
Ubuntu의 파일은 git
패키지로 제공됩니다.
$ dpkg-query -S /usr/lib/git-core/git-sh-prompt
git: /usr/lib/git-core/git-sh-prompt
Fedora의 경우 git-core
(경로가 약간 다름):
rpm -qf /usr/share/git-core/contrib/completion/git-prompt.sh
git-core-2.5.5-1.fc23.x86_64
팁은 다음에서 전송됩니다.
[user@computer] ~/workspace $
도착하다
[user@computer] ~/workspace (master)$
답변2
다음이 더 편할 수도 있습니다. 여기에 .git 폴더가 있습니까?또는 내 상위 디렉토리 중 하나에?
in_git () {
local dir=$PWD
until [[ $dir == / ]]; do
[[ -d "$dir/.git" ]] && return 0
dir=$(dirname "$dir")
done
return 1
}
그래서 당신의 팁은
PS1='[\u@\h] \w $(in_git && echo "GIT ")\$ '
저장소의 하위 디렉터리에 있는 경우 GIT 표시기가 표시됩니다.
답변3
모든 답변에 감사드립니다! 나는 이것을 내 .bash_profile (Mac의 경우)에 넣었습니다.
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\] $ "
답변4
당신은 설치할 수 있습니다https://github.com/nojhan/liquidprompt보여줄 것 편차 ± 어디 ±git을 의미하고개발자현재 사용중인 git 브랜치입니다.