OSX 10.10 Yosemite Beta로 업그레이드 한 후 실행 git pull
하면 다음 오류가 반환됩니다.
/ Library / Developer / CommandLineTools / usr / libexec / git-core / git-pull : 11 행 : git-sh-setup : 해당 파일 또는 디렉토리 없음
참조 된 git-core 디렉토리를 확인했고 git-sh-setup.sh가 있습니다.
다른 git 명령이 예상대로 정확히 작동합니다.
답변
현재로서는 가장 깨끗한 해결책은 iTerm 세션의 초기 명령을 다음과 같이 변경하는 것입니다.
/usr/bin/login -f <your user name>
이것은 나를 위해 문제를 해결합니다.
문제 분석을위한 추가 데이터 포인트 : 10.10에서는 PATH 환경 변수의 여러 복사본이 존재하고 서브 쉘이 두 번째 복사본을 선호하는 것 같습니다.
iTerm에서 실행 한대로 콘솔에서 코코아 애플리케이션을 실행하여이를 재현 할 수 있습니다. 다음과 같은 경고가 표시됩니다.
2014-06-04 19:23:09.859 gitx[14676:362580] *** -[NSProcessInfo environment]: Warning: duplicate definition for key 'PATH' found in environment -- subsequent definitions are ignored. The first definition was '(the path I have configured in my shell)', the ignored definition is '/usr/bin:/bin:/usr/sbin:/sbin'.
나는 이것이 iTerm이 아닌 10.10에서 문제라고 생각하지만 iTerm 이하는 일이 그것이 스스로를 드러내는 원인입니다 (이는 Terminal.app에서 발생하지 않습니다)
업데이트 : 이것은 iTerm이 환경에 “흥미로운”일을함으로써 발생합니다. 이 문제를 해결하려면 iTerm 2.0의 공식 릴리스로 업데이트하십시오.
답변
나는 이것이 zsh를 사용할 때 iTerm의 버그라고 생각합니다. 그들은 의도적으로 / usr / bin / login을 호출하지 않으며 execle을 사용하여 환경 변수를 지우지 않습니다.
답변
최신 버전의 iTerm2를 다운로드하면이 문제가 해결되었습니다!
답변
또 다른 해결책, iTerm2 수정
cd /Applications/iTerm.app/Contents/MacOS
mv iTerm iTerm-bin
cat > iTerm <<EOF
#!/bin/sh
unset PATH
\${0}-bin
EOF
chmod +x iTerm
끝난.
Yosemite와 함께 iTerm2를 즐기십시오!
답변
임시 솔루션으로 git-pull 줄 11, 12 및 336을 다음과 같이 수정했습니다.
. /usr/local/Cellar/git/2.0.0/libexec/git-core/git-sh-setup
. /usr/local/Cellar/git/2.0.0/libexec/git-core/git-sh-i18n
eval="/usr/local/Cellar/git/2.0.0/libexec/git-core/git-merge $diffstat $no_commit $verify_signatures $edit $squash $no_ff $ff_only"
이것은 현재 git-pull을 수정하지만 더 나은 솔루션이 있다고 확신합니다.
답변
공식적인 수정이 나오기 전에 Git가 작동해야하는 경우 임시 수정 (Homebrew 및 Git 2.0.0 가정)이 있습니다. 두 개의 쉘 변수를 설정했습니다.
export GIT_PATH="/usr/local/Cellar/git/2.0.0/bin"
export GIT_CORE_PATH="/usr/local/Cellar/git/2.0.0/libexec/git-core"
…의 인스턴스 git
를 적절한 절대 링크 로 대체했습니다 . 다음 Gists를 사용하여 동일한 작업을 수행 할 수 있습니다.
- /usr/local/Cellar/git/2.0.0/libexec/git-core/git-sh-setup/ 을 git-sh-setup으로 바꿉니다.
- /usr/local/Cellar/git/2.0.0/libexec/git-core/git-stash/ 를 git-stash로 바꿉니다.
- /usr/local/Cellar/git/2.0.0/libexec/git-core/git-pull/ 을 git-pull로 바꿉니다.
이것은 확실히 해킹이지만 당신이 갈 것입니다.
편집 :이 작업을 수행하기 전에 @pilif의 답변을 확인하십시오 …
답변
Ubiquill의 해결 방법은 git rebase (그리고 아마도 다른 기능이 작동하지 않는 것)에도 적용됩니다. 이 경우 47 행과 48 행을 다음 *로 바꾸어야합니다.
. /usr/local/Cellar/git/2.0.0/libexec/git-core/git-sh-setup
. /usr/local/Cellar/git/2.0.0/libexec/git-core/git-sh-i18n
*이 경로는 homebrew와 함께 git이 설치되어 있고 /usr/local/Cellar/git/2.0.0/ 내부에 있다고 가정합니다.