source

(Mac) -bash: __git_ps1: 명령을 찾을 수 없습니다.

factcode 2023. 7. 8. 11:12
반응형

(Mac) -bash: __git_ps1: 명령을 찾을 수 없습니다.

터미널에서 명령 프롬프트를 변경하려고 합니다.계속 오류가 발생합니다.

-bash: __git_ps1: command not found

단말기에 다음과 같이 입력하기만 하면 사용해 보았습니다.__git_ps1저는 또한 그것을 시험해 보았습니다..bash_profile

if [ -f ~/.git-completion.bash ]; then
  source ~/.git-completion.bash
  export PS1='[\W]$(__git_ps1 "(%s)"): '
fi

보시다시피 자동 완성 기능이 설치되어 있고 작동이 잘 됩니다!

나는 이 질문을 접했습니다: 코드를 제공하는 "PS1 env 변수는 mac"에서 작동하지 않습니다.

alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'"

그래서 나는 그것을 나의 것에 추가합니다..bash_profile그것이 무언가를 바꾸기를 바랍니다.네, 그렇습니다.오류 출력이 변경되었습니다.

여기 있습니다..bash_profile다음을 추가합니다.

alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'"

if [ -f ~/.git-completion.bash ]; then
  source ~/.git-completion.bash
  export PS1='[\W]$(__git_ps1 "(%s)"): '
fi

다음은 변경된 오류 출력입니다.

sed: (%s): No such file or directory

참고: 다른 점 없이 소스 아래로 별칭을 이동했습니다.나는 1.7.12.1 버전을 가지고 있습니다.

이것은 간단한 변경 사항이어야 합니다.누가 저 좀 도와주실 수 있나요?

10/13/12 편집

아니요, 저는 확실히 __git_ps1을 직접 정의하고 싶지 않지만 그렇게 함으로써 인식되는지 확인하려고 했습니다.네, 제가 가지고 있습니다..git-completion.bash파일이 설치되었습니다.이것이 제가 제 기계에서 자동 완성을 얻은 방법입니다.

cd ~
curl -OL https://github.com/git/git/raw/master/contrib/completion/git-completion.bash
mv ~/git.completion.bash ~/.git-completion.bash

A ls -la그런 다음 목록을 표시합니다..git-completion.bashjava.

git-completion.bashmasterit의 개발 역사에서 이것은 분리된 커밋 이후입니다.__git_ps1 function function file ( 파일로)git-prompt.sh). 이 변경을 도입한 위원회는 af31a456입니다.

저는 여전히 당신이 단지 그 버전의 출처를 제공하는 것을 제안하고 싶습니다.git-completion.bash(또는)git-prompt.shgit

어떤 로 인해 에서 별도로 하여 이 같이 .master은 다로드합니다야를 다운로드해야 .git-prompt.sh유사하게:

curl -o ~/.git-prompt.sh \
    https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh

을 당신의 음행을추다에 하세요.~/.bash_profile:

source ~/.git-prompt.sh

당신의 그럼당신의.PS1__git_ps1 '%s'잘 작동할 겁니다.

는 10과 같은 내용을 했습니다..bash_profile다른 사용자는 작동하지 않았습니다.

if [ -f ~/.git-prompt.sh ]; then
  source ~/.git-prompt.sh
  export PS1='Geoff[\W]$(__git_ps1 "(%s)"): '
fi

OSX 10.9 Mavericks로 업그레이드한 후 git shell 명령을 완료하고 git 프롬프트가 다시 작동하도록 하기 위해 다음 파일을 참조해야 했습니다.

my .bash_profile 또는 유사한 .bash_profile에서:

if [ -f /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-completion.bash ]; then
    . /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-completion.bash
fi

source /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-prompt.sh

#shell prompt example
PS1='\u $(__git_ps1 "(%s)")\$ '

당신은 그래야 한다.

brew 설치 bash-construction git

그런 다음 .bashrc에서 "$(brew --prefix)/etc/bash_completion"을 소스로 지정합니다.

팔로잉은 저에게 매력적으로 작용했습니다.

터미널에서 다음을 실행합니다.

curl -L https://raw.github.com/git/git/master/contrib/completion/git-prompt.sh > ~/.bash_git

bash_profile 열기/만들기:

$ vi ~/.bash_profile

파일에 다음을 추가합니다.

source ~/.bash_git
export PS1='\[\033[01;32m\]os \[\033[01;34m\]\w $(__git_ps1 "[%s]")\$\[\033[00m\] '
export GIT_PS1_SHOWDIRTYSTATE=1
export GIT_PS1_SHOWUPSTREAM="auto"

마지막으로 다음을 사용하여 소스:

$ source ~/.bash_profile

▁of 가 해결될 것입니다.bash: __git_ps1: command not found.

또한 프롬프트가 "os"로 변경됩니다."os"를 다른 항목으로 변경하려면 PS1 내보내기 행에서 "os" 문자열을 수정합니다.

MacOS 시에라 및 git 버전 2.10.1용 솔루션 <2017-2-06>

1단계: Git 설치

최신 Git를 이미 설치한 경우 이 단계를 건너뛸 수 있습니다.

브라우저 https://git-scm.com/download/ 에서 git 패키지 다운로드

을 사용하여 : 을(를) 사용합니다.curl [option] https://...다운로드하려면 시스템이 SSL을 지원하는지 확인해야 합니다.그래서 새로 온 사람들은 브라우저에서 다운로드하고 git instra에서 직접 설치하는 것이 훨씬 쉽습니다.

Installation Verification:
  • Git 디렉위표:which git
  • 합니다: 현재버전표시합니다을▁show▁your.git --version은 2. 현버은 2.10.1 이합다니.

2단계: 셸에 Git 프로필 추가

  1. 셸 프로파일 열기:
    • nano ~/.bash_profile 또는 수정 위치에 따라 다릅니다.
  2. 다음 코드를 파일에 추가합니다.
    • source /usr/local/git/contrib/completion/git-completion.bash
    • source /usr/local/git/contrib/completion/git-prompt.sh

참고: OSX를 El Capitain으로 업그레이드한 후 git 설치 위치가 opt/directory에서 usr/local/로 변경되었으며, 이것이 위의 오래된 답변 중 일부가 MacOS Sierra에서 더 이상 작동하지 않는 이유입니다.

  1. 다음 코드를 PS1 구성에 추가합니다.

    • 옵션 1: PS1에 직접 추가:

      나는 이미 알고 있기 때문에 이 간단한 접근 방식을 선호합니다..git-completion.bash홈 디렉토리에 있고, 앞에 다른 프롬프트 형식을 추가할 수 있습니다.여기 당신의 참조를 위한 나의 개인적인 프롬프트가 있습니다.export PS1='\t H#\! \u:\w$(__git_ps1 "{%s}") -->> '
    • 옵션 2: 선택 스크립트 추가

    if [ -f ~/.git-transition.dll ]; 그렇다면PS1='\w$(__git_ps1(%s)) 내보내기 > 'fi
  2. 프로파일을 저장하고 사용합니다.source ~/.bash_profile또는source ~/.bashrc

Now you should see the git prompt working properly and shows which branch you are in right now.

컬러감 있는 하이 시에라 클린 솔루션!

다운로드가 없습니다.양주 없음.X 코드 없음

~/.bashrc 또는 ~/.bash_profile에 추가하기만 하면 됩니다.

export CLICOLOR=1
[ -f /Library/Developer/CommandLineTools/usr/share/git-core/git-prompt.sh ] && . /Library/Developer/CommandLineTools/usr/share/git-core/git-prompt.sh
export GIT_PS1_SHOWCOLORHINTS=1
export GIT_PS1_SHOWDIRTYSTATE=1
export GIT_PS1_SHOWUPSTREAM="auto"
PROMPT_COMMAND='__git_ps1 "\h:\W \u" "\\\$ "'

요세미티로 업그레이드할 때도 같은 문제가 있었습니다.

나는 단지 수정할 수 밖에 없었습니다.~/.bashrcsource /usr/local/etc/bash_completion.d/git-prompt.sh옛길 대신에

그런 다음 리소스를 다시 할당합니다.. ~/.bashrc효과를 얻기 위해.

bash용 __git_ps1은 이제 git-timeout에 있습니다.my brew에 설치된 git 버전 1.8.1.5의 shin /usr/local/etc/message_retection.d

OS 10.8의 .bash_profile에서 작동합니다.

if [ -f ~/.git-prompt.sh ]; then
  source ~/.git-prompt.sh
  export PS1='YOURNAME[\W]$(__git_ps1 "(%s)"): '
fi

macports를 추가해야 했습니다.source /opt/local/share/git-core/git-prompt.sh나의 ./내 프로필에

홈브루를 사용하여 Git를 업그레이드하고 시스템이 일반적으로 구식이 되도록 하려면(나처럼) 홈브루 자체를 먼저 최신 상태로 만들어야 할 수 있습니다(브루 업데이트에 따라). 다음 추적되지 않은 작업 트리 파일은 병합에 의해 덮어씁니다. thanks @chris-frisina)

먼저 홈브루를 현재 버전과 일치시킵니다.

cd /usr/local
git fetch origin
git reset -- 하드 오리진/마스터

그런 다음 Git를 업데이트합니다.

양조업 업그레이드 깃

문제 해결! ;-)

적어도 Xcode 6에서는 이미git-completion.bash그것은 Xcode 앱 번들 안에 있습니다.

.bashrc에 추가하기만 하면 됩니다.

source `xcode-select -p`/usr/share/git-core/git-completion.bash
  1. git-prompt 파일을 다운로드합니다. Git 완료로부터의 shandgit-completion.bash
  2. 파일 이름을 변경합니다.
  3. 해당 파일을 홈 디렉토리로 이동합니다.
  4. 소스 파일을 .bash_profile에 추가합니다.

    source ~/git-completion0.bash
    source ~/git-prompt0.sh
    and four to trigger the code block.
    

그게 진짜 답이 아니라는 걸 알아요

Git-prompt 소싱과 관련하여 몇 가지 이상한 문제가 있었습니다.shin my .bashrc 그래서 다른 해결책을 찾기 시작했습니다.이것: http://www.jqno.nl/post/2012/04/02/howto-display-the-current-git-branch-in-your-prompt/ 은 __git_ps1을 사용하지 않으며, 저자는 Mac에서도 작동한다고 주장합니다(현재는 내 우분투에서 완벽하게 작동하고 조정하기 쉽습니다).

도움이 되길 바랍니다!

저는 Git hub를 위해 Udacity에 대한 강좌를 수강하고 있었는데 같은 문제를 겪고 있었습니다.여기 올바르게 작동하는 최종 코드가 있습니다.

# Change command prompt
alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \ .   (.*\)/(\1)/'"

if [ -f ~/.git-completion.bash ]; then
  source ~/.git-completion.bash
  export PS1='[\W]$(__git_ps1 "(%s)"): '
fi

source ~/.git-prompt.sh
export GIT_PS1_SHOWDIRTYSTATE=1
# '\u' adds the name of the current user to the prompt
# '\$(__git_ps1)' adds git-related stuff
# '\W' adds the name of the current directory
export PS1="$purple\u$green\$(__git_ps1)$blue \W $ $reset"

효과가 있습니다!https://i.stack.imgur.com/d0lvb.jpg

를 설치하지 Xcode에서 스크립트를 수 /Library/Developer/CommandLineTools/ 에없는이 /Applications/Xcode.app/Contents/Developer/따라서 .tvrc 내에 포함할 행을 다음과 같이 만듭니다.

if [ -f /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash ]; then
    . /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash
fi

source /Library/Developer/CommandLineTools/usr/share/git-core/git-prompt.sh

git-prompt를 사용하려면 해당 라인이 필요합니다.: https://stackoverflow.com/a/20211241/4795986

curl -L https://raw.github.com/git/git/master/contrib/completion/git-prompt.sh -o ~/.git-prompt.bash

[[ -f ~/.git-prompt.bash ]]       && . ~/.git-prompt.bash
# Available GIT_PS1 options/env vars

cat ~/.git-prompt.bash | grep GIT_PS1_ | sed -r 's,^\s*#.*,,' | grep -v -E '^$' | sed -r 's,^.*(GIT_PS1_[A-Z_]+).*,\1,' | sort | uniq | sed -r 's,^(.*)$,export \1=,'
export GIT_PS1_COMPRESSSPARSESTATE=
export GIT_PS1_DESCRIBE_STYLE=
export GIT_PS1_HIDE_IF_PWD_IGNORED=
export GIT_PS1_OMITSPARSESTATE=
export GIT_PS1_SHOWCOLORHINTS=
export GIT_PS1_SHOWDIRTYSTATE=
export GIT_PS1_SHOWSTASHSTATE=
export GIT_PS1_SHOWUNTRACKEDFILES=
export GIT_PS1_SHOWUPSTREAM=
export GIT_PS1_STATESEPARATOR=

for i in $(cat ~/.git-prompt.bash | grep GIT_PS1_ | sed -r 's,^\s*#.*,,' | grep -v -E '^$' | sed -r 's,^.*(GIT_PS1_[A-Z_]+).*,\1,' | sort | uniq); do varname=$i; declare -g ${i}=1; done
# P.S Above is just illustration not all config vars are [0/1].

# For more info: 

cat ~/.git-prompt.bash | sed -r -n -e '1,/^[^\s*#]/p' | head -n -2

이것은 저에게 효과가 있었고 컬러 깃 출력과 프롬프트에 파일이 변경/추가되었는지 여부를 나타내는 표시기가 있습니다.

GIT_PS1_SHOWDIRTYSTATE=true

. /usr/local/Cellar/git/1.8.5.2/etc/bash_completion.d/git-completion.bash
. /usr/local/Cellar/git/1.8.5.2/etc/bash_completion.d/git-prompt.sh

PS1='\[\033[32m\]\u@\h\[\033[00m\]:\[\033[34m\]\w\[\033[31m\]$(__git_ps1)\[\033[00m\]\$ '

올바른 경로를 사용해야 합니다!홈브루를 사용하여 깃을 설치하고, 사용합니다.brew list git현재 설치에 대한 경로를 가져옵니다.

하드 코딩된 경로를 사용하지 않는 것이 좋지만 현재 설치에 대한 경로를 가져오는 방법을 알지 못합니다.

자세한 정보는 http://en.newinstance.it/2010/05/23/git-autocompletion-and-enhanced-bash-prompt/ 에서 확인하십시오.

이런, 그것이들은이 ./Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-prompt.sh 많이 ./etc/bashrc_Apple_Terminal도 마찬가지야

그래서 이걸 넣었습니다.~/.bash_profile:

if [ -f /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-prompt.sh ]; then
  . /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-prompt.sh
  export GIT_PS1_SHOWCOLORHINTS=1
  export GIT_PS1_SHOWDIRTYSTATE=1
  PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND; }__git_ps1 '\u:\w' '\\\$ '"
fi

하지만 내가 방금 모하비에 설치한 또 다른 옵션은 매직몬티/bash-git-prompt입니다.

실행)brew update및 ) 및brew install bash-git-prompt또는brew install --HEAD bash-git-prompt

그럼 당신에게~/.bash_profile또는~/.bashrc:

if [ -f "$(brew --prefix)/opt/bash-git-prompt/share/gitprompt.sh" ]; then
  __GIT_PROMPT_DIR=$(brew --prefix)/opt/bash-git-prompt/share
  GIT_PROMPT_ONLY_IN_REPO=1
  source "$(brew --prefix)/opt/bash-git-prompt/share/gitprompt.sh"
fi

기뻐요.

을 복사하여 홈합니다.~/

칫-컨버전스.

가슴이 철렁 내려앉는

bash_profile의 경우 처음에 다음을 추가합니다.

source ~/git-completion.bash
source ~/git-prompt.sh
export GIT_PS1_SHOWDIRTYSTATE=1

많고 쉬운 다운로드는 이것을 확인할 수 있습니다.

언급URL : https://stackoverflow.com/questions/12870928/mac-bash-git-ps1-command-not-found

반응형