![현재 디렉터리에 .git 폴더가 있는 경우 GIT를 표시하라는 메시지가 표시될 수 있나요?](https://linux55.com/image/6596/%ED%98%84%EC%9E%AC%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EC%97%90%20.git%20%ED%8F%B4%EB%8D%94%EA%B0%80%20%EC%9E%88%EB%8A%94%20%EA%B2%BD%EC%9A%B0%20GIT%EB%A5%BC%20%ED%91%9C%EC%8B%9C%ED%95%98%EB%9D%BC%EB%8A%94%20%EB%A9%94%EC%8B%9C%EC%A7%80%EA%B0%80%20%ED%91%9C%EC%8B%9C%EB%90%A0%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
현재 디렉터리가 현재 디렉터리에 있을 때 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 브랜치입니다.