Mac OS X에서 Git을 업데이트하고 이전 Git을 제거하려고 하면 실패합니다.

Mac OS X에서 Git을 업데이트하고 이전 Git을 제거하려고 하면 실패합니다.

Mac OS X 10.8.5(Mountain Lion)에서 git을 업데이트하려고 합니다.

이 새 버전을 다음에서 다운로드했습니다.이 링크을 두 번 클릭한 .dmg다음 uninstall.sh터미널로 드래그합니다(지침에 따라).거기) 이전 버전을 제거하려면 다음을 얻습니다.

Git doesn't appear to be installed via this installer.  Aborting

현재 git내 컴퓨터에 설치되어 있습니다.

$ git --version
git version 1.7.9.6 (Apple Git-31.1)
$ which git
/usr/bin/git 

왜 제거할 수 없나요? 어떻게 업데이트할 수 있나요 git?

답변1

Mac에서 가장 쉬운 방법은 다음을 사용하는 것입니다.집에서 만든 맥주.

  1. 브루 설치
  2. 지침을 따르십시오( 업데이트하라는 메시지가 brew doctor표시됩니다.$PATH/usr/local/bin:$PATH
  3. brew install git

수동 업데이트에 대해 걱정하지 마세요. brew update && brew upgrade자주 실행하세요.

기존 것을 설치할 수 없는 이유:

  • Apple에는 Xcode가 사용하는 기본 git 설치가 있습니다(Xcode 또는 최소한 명령줄 유틸리티를 설치했다고 가정).

답변2

더 짧은 대답.

gitMac OS X에 표시되는 Xcode를 제거할 필요가 없습니다. 다음과 같이 편집하여 추가 /usr/local/git/bin하면 됩니다.$PATH~/.bash_profileexport PATH

export PATH="/usr/local/git/bin:$PATH"

그런 다음 해당 파일을 닫고 저장한 후 다음과 같이 터미널 세션에 로드합니다.

source ~/.bash_profile

그리고 이미 설치된 Xcode보다 새로 설치된 gitXcode에 우선적으로 액세스할 수 있습니다 .git

더 긴 답변입니다.

오류 메시지를 해석합니다.

uninstall.sh이 문제는 함께 제공되는 Bash 스크립트 의 내용을 보면 이해할 수 있습니다.Mac OS X용 공식 Git 설치 프로그램 패키지정확히 무엇을 하는지 보려면. 다음은 현재 보고 있는 오류를 발생시키는 상단 근처의 스니펫입니다.

#!/bin/bash
if [ ! -r "/usr/local/git" ]; then
  echo "Git doesn't appear to be installed via this installer.  Aborting"
  exit 1
fi

Bash 스크립트 if [ ! -r "/usr/local/git" ]; then는 이 디렉토리 경로의 존재를 확인하고 있습니다.

/usr/local/git/

which git그러나 경로 디렉토리 경로를 실행했을 때 얻은 경로는 다음과 같습니다.

/usr/bin/ 

이는 공식 설치 프로그램 git이 ./usr/local/git//usr/bin/

git그렇다면 이미 갖고 있는 다른 버전은 무엇인가요 ? git --version자세한 내용은 출력을 확인해 보겠습니다 .

$ git --version
git version 1.7.9.6 (Apple Git-31.1)

저거 보이나요 (Apple Git-31.1)? 이는 Apple에서 설치했음을 나타냅니다. 그리고 는 git핵심 Mac OS X 설정의 일부가 아니기 때문에 Xcode 및 관련 명령줄 바이너리를 통해서만 설치할 수 있었습니다.

즉, Xcode 버전의 git. 대신 터미널 에서 .NET의 핵심 Mac OS X 바이너리보다 git설치된 바이너리를 선호하도록 만들고 싶습니다 . 그리고 이렇게 설정을 수정하면 됩니다 ./usr/local/git/bin//usr/bin/$PATH~/.bash_profile

문제를 해결합니다.

먼저 ~/.bash_profile텍스트 편집기를 엽니다. 나는 다음과 같이 명령줄에서 직접 이 작업을 수행하는 것을 선호합니다 nano.

nano ~/.bash_profile

export $PATH이제 해당 항목 이 없으면 파일에 다음과 같은 줄을 ~/.bash_profile추가하면 됩니다 .$PATH

export PATH="/usr/local/git/bin:$PATH"

거기에 존재하는 경우 시스템의 기본 값 앞에 있도록 export $PATH해당 값을 수정하십시오 . 구분 기호에 유의하세요 ./usr/local/git/bin$PATH:

이제 해당 파일을 닫고 저장한 후 다음과 같이 터미널 세션에 로드하십시오.

source ~/.bash_profile

이제 다음을 입력하면:

which git

출력은 다음과 같아야 합니다.

/usr/local/git/bin/git

이는 터미널이 바이너리의 기본값으로 다른 디렉터리를 확인하기 위해 이동하기 전에 $PATH이제 체크인한다는 의미입니다 ./usr/local/git/bin/$PATHgit

따라서 Xcode 버전을 제거하지 않고도 git이제 공식 및 업데이트된 git바이너리를 다운로드하여 설치하고 Homebrew나 다른 것을 다루지 않고도 사용할 수 있습니다. 예를 들어 내 시스템에서 현재 출력은 git --version다음과 같습니다.

git version 2.5.3

(Apple Git-31.1)보이지 않습니다 . 이 조정 git덕분에 최신 상태이고 사용할 준비가 된 순수한 버전 번호입니다 .$PATH

답변3

설치 하는 것만 git으로는 충분하지 않습니다. 또한 기능적인 git repo 폴더에 있는 git경우에만 작동한다는 점을 기억하세요 . 이는 폴더가 cd표시되어야 하고 ./.git(힌트: ls -la숨겨진 폴더를 보려면 사용) git status아래 예와 유사한 내용을 반환해야 함을 의미합니다.

[some_repo]$ git status
On branch master
Your branch is up-to-date with 'origin/prod'.
nothing to commit, working directory clean

그러나 폴더가 유효한 git repo가 ​​아닌 경우 다음과 같은 내용이 표시됩니다.

[~]$ git status
fatal: Not a git repository (or any of the parent directories): .git

관련 정보