OSX 10.10 yosemite beta on git pull : git-sh-setup : No such file or directory
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/ 내부에 있다고 가정합니다.
git-pull 파일을 편집하고 그 위에이 줄을 추가합니다 (주석 블록 바로 뒤에).
PATH="$(dirname $0):$PATH"
또는 복사하여 터미널에 붙여 넣으십시오.
ed -s $(which git-pull) <<< $'6i\nPATH="$(dirname $0):$PATH"\n.\nwq'
업데이트 : 마지막 iTerm2 업데이트 (1.0.0.20140629) 이후 pilif가 추정 한대로이 재정의 git-pull
없이 제대로 실행됩니다 PATH
.
git-rebase.sh에 대한 업데이트가 있습니다.
https://github.com/git/git/pull/110/files
업데이트 : 여전히 아래 언급 된 릴리스로 작동하지 않습니다. 내 실수입니다. 힘내 푸시가 작동합니다 힘내 풀이 작동하지 않습니다.
It seems to me that the issue has been fixed by Apple with Mac OS X Yosemite 10.10 (14A329r). i am on the general Beta Yosemite channel (not developer). Git push/pull works as expected again without any modifications.
'program story' 카테고리의 다른 글
C int 배열을 0으로 재설정 : 가장 빠른 방법? (0) | 2020.09.05 |
---|---|
ORA-01882 : 시간대 영역이 없습니다 (0) | 2020.09.05 |
사용 설명 누락으로 인해 앱이 거부 됨 (Xcode8) (0) | 2020.09.05 |
"%를 사용할 수 없음 : 대신 truncatingRemainder 사용"은 무엇을 의미합니까? (0) | 2020.09.05 |
adb 명령을 사용하여 SD 카드없이 기기에 파일을 푸시하는 방법 (0) | 2020.09.05 |