OSX 10.10 yosemite beta on git pull: git-sh-setup: No such file or directory

后端 未结 10 2098
醉话见心
醉话见心 2020-12-22 18:33

After upgrading to OSX 10.10 Yosemite Beta, running git pull is returning the following error:

/Library/Developer/CommandLineTools/usr/li

相关标签:
10条回答
  • 2020-12-22 19:26

    Here's a temporary fix (assuming Homebrew and Git 2.0.0) if you need Git to work before an official fix comes out. I setup two shell variables:

    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"
    

    ... and then replaced instances of git with appropriate absolute links. You can use the following Gists to do the same:

    • Replace /usr/local/Cellar/git/2.0.0/libexec/git-core/git-sh-setup/ with git-sh-setup
    • Replace /usr/local/Cellar/git/2.0.0/libexec/git-core/git-stash/ with git-stash
    • Replace /usr/local/Cellar/git/2.0.0/libexec/git-core/git-pull/ with git-pull

    This is a hack for sure, but it will get you going.

    EDIT: Make sure you look at the answer from @pilif before doing this...

    0 讨论(0)
  • 2020-12-22 19:29

    As a temp solution I modified git-pull lines 11, 12, and 336 to be:

    . /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"
    

    This fixes git-pull for now, but I'm sure there is a better solution.

    0 讨论(0)
  • 2020-12-22 19:30

    I think the cleanest solution for this for now is to change the initial command in your iTerm session to be

    /usr/bin/login -f <your user name>
    

    This fixes the issue for me.

    A further data point for analysis of the issue: It seems that in 10.10, multiple copies of the PATH environment variable exist and subshells seem to prefer the second copy.

    You can reproduce this by launching any cocoa application on the console as launched by iTerm. You'll get a warning that looks like this:

    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'.
    

    I believe this to be a problem in 10.10 and not iTerm, but something iTerm is doing is causing it to manifest itself (this doesn't happen in Terminal.app)

    Update: This is caused by iTerm doing "interesting" stuff to the environment. Update to the official release of iTerm 2.0 to make this problem go away.

    0 讨论(0)
  • 2020-12-22 19:32

    I believe this is a bug in iTerm when using zsh. They deliberately don't invoke /usr/bin/login, and they don't use execle to clear the environment variables like they should be.

    0 讨论(0)
提交回复
热议问题