현재 디렉터리에 .git 폴더가 있는 경우 GIT를 표시하라는 메시지가 표시될 수 있나요?

현재 디렉터리에 .git 폴더가 있는 경우 GIT를 표시하라는 메시지가 표시될 수 있나요?

현재 디렉터리가 현재 디렉터리에 있을 때 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 브랜치입니다.

관련 정보