Mac에서 Homebrew가 설치된 git을 사용하는 방법은 무엇입니까?


115

homebrew를 사용하여 최신 버전의 git (1.8.3)을 설치했지만 입력 할 때

git --version

내 터미널에서 다음을 인쇄합니다.

git version 1.7.10.2 (Apple Git-33)

이전 버전의 git을 새 버전으로 바꾸려면 어떻게해야합니까?


2
당신은 몇 가지 좋은 답변을 가지고-그래서 나는 질문에 대해 의견을 말하고 싶었습니다. Homebrew 또는 GUI 클라이언트의 소스에서 git을 설치하기위한 명시 적 지침을 찾고 있습니까? 아니면 OS X이 여러 버전의 git을 핵심 OS와 번들로 제공하는지 확인하고 있습니까? opensource.apple.com/source/Git (FWIW-지금까지 Apple 번들을 본 최신 git은 1.7.12.4입니다 (Git-37에서 제공))
bmike

답변:


105

유용한 답변을 주신 모든 분들께 감사드립니다. 내 경우에는 추가

export PATH="/usr/local/bin:${PATH}"

~/.bash_profile이어

source ~/.bash_profile

내 사용자의 문제를 해결했습니다.


17
사용자간에 변경 사항을 유지하려면 에서에서 /usr/local/bin위로 이동할 수 있습니다 . /usr/bin/etc/paths
kevin

3
이것은 brew doctor문제를 진단하기 위해 실행할 때 Homebrew 자체에서 제안한 솔루션입니다.
VoxPelli

1
이 답변은 정의 된 KevinT 솔루션으로 업데이트해야합니다 /etc/paths. (양조장에서) /usr/bin"우선 순위"가있는 경우 "수출"만 정의하는 것만으로는 충분하지 않을 수 있습니다 /usr/local/bin.
emgsilva

8
터미널을 다시 시작해야합니다! 내가 Juan Diego Gonzales의 코멘트를 볼 때까지 나에게 일어나지 않았다
Souleiman

2
@ Souleiman : 다시 시작할 필요가 없습니다. source ~/.bash_profile다시 읽습니다. 다시 시작하는 것이 더 빠르거나 쉽습니다. :)

43

좋아, 나는 scm에 대해 진지하게 준비되어있다.

$ git --version
git version 1.9.5 (Apple Git-50.3)

아니, 그건 내가 원하는 게 아니야 나는 <3 사제이므로,

$ brew install git

모든 설정?

$ git --version
git version 1.9.5 (Apple Git-50.3)

도! (스크래치 머리)

$ which git
/usr/bin/git

아, 애플의 자식은 / usr / bin에 있기 때문에 홈브류보다 우선합니다. 무엇을해야합니까?

(A) Apple 바이너리의 이름을 바꾸십시오.

(B) 가정에서 관리하는자가 우선권을 갖도록하십시오.

[예 : ~ / .zshrc에서 경로 내보내기 편집 (oh-my-zsh + iTerm2 FTW! / tangent)]

[구체적으로 : / usr / local / bin / git : / usr / bin 이전 :]

... 및 / 또는 (예를 들어, 홈 브루어 물건보다 시스템 설치에 우선 순위를두고 모든 쉘과 사용자에게 우선 순위를 적용하도록) / etc / paths 파일을 편집하십시오. ]

그러나 가장 단순하고 가장 침습적 인 접근 방식을 가정하면 :

$ sudo mv /usr/bin/git /usr/bin/git-apple

작동 했습니까?

$ which git
/usr/local/bin/git

지금까지 좋은 순간, 이제 진실의 순간 :

$ git --version
git version 2.2.1

w00t! :) 갈 시간 http://git-scm.com ! :)


PS Rel / usr / bin 편집의 위험에 대한 의견 : IMHO는 NBD입니다. (글로벌 유목민의 제안을 좋아하는 사람은 "sudo ln -s / usr / local / bin / git / usr / bin / git"... "/ usr / bin / git"호출이 명시 적으로 brew를 설치하는 것은 시스템에 git의 소유권을 가지고 있음을 의미합니다 이전의 다른 버전의 git을 사용하여 알 수없는 프로세스에 대한 걱정이 잘못 될 수 있습니다. 자식 버전 (보안을 위해, 단지 기능), 그리고 스스로를 관리 브루이 용이하게 /$0.02..
cweekly

sudo mv / usr / bin / git-apple / usr / bin / git 만하면됩니다. Juan Diego Gonzales의 의견이 효과가있었습니다. (기본적으로 허용 된 답변을 따른 다음 터미널을 다시 시작하십시오).
Souleiman 2016 년

which git가리켜 도 /usr/local/bin/git이것이 효과가 없었습니다. 이를 해결하기 위해 GitHub Mac 앱을 제거해야했습니다.
Ben

2
MacOS 10.12.5 :sudo mv /usr/bin/git /usr/bin/git-apple mv: rename /usr/bin/git to /usr/bin/git-apple: Operation not permitted
Vladislav Rastrusny 2012 년

요즘은 사제가 : 더 이상 그렇게 희망 PATH의 "앞"에서 필요한 자체를두고 보인다
rogerdpack

32

상태 2019

최신 홈 브루를 사용하는 macOS Sierra & Mojave에서는 여러 답변에서 여기에 언급 된 모든 트릭이 더 이상 필요하지 않습니다. 를 잊어 버리고 export PATH="..."수정합니다 ~/.bash_profile.

당신은 단순히

brew install git

그리고 당신의 일.

확인하려면 새 (!) 터미널 창을 열고 다음을 입력하십시오.

git --version

16
이것이 맞다고 생각하지만 새 터미널을 열어야하거나 변경 사항이 적용되지 않습니다.
robjwilkins 2012 년

불행히도 이것은 나를 위해 작동하지 않습니다.
rsp1984

2
이것은 Mojave에서 나를 위해 일했습니다. 나는 않은 새로운 터미널을 열 수 있습니다.
Craig Otis

2
brew link --overwrite git나를 위해 일했다
wickdninja

9

brew ( brew install git) 를 통해 최신 git을 설치 한 후에는 이 하나의 라이너 ( brew doctor)에서 아직 제안 하지 않은 경우 실행하십시오.

echo "export PATH=/usr/local/bin:$PATH" >> ~/.bash_profile

그런 다음 터미널을 종료하고 다시 엽니 다 (bash 세션을 다시 시작하십시오). ZSH 및 Bash가 PATH의 컨텐츠를 캐시하므로 PATH가 이미 올바른 경우에도이를 수행해야합니다 (내장 명령의 문서 참조 hash).

정말 빨리 해결해야합니다.


1
이것이 허용되는 답변과 어떻게 다릅니 까?
user151019

6
필자의 경우 터미널을 다시 시작해야한다는 것을 몰랐으므로 일부 사람들에게 도움이 될 수 있습니다. 하나의 라이너로 인해 허용되는 것보다 빠릅니다. 경쟁이라면 내 대답이 잘못되었다고 생각합니다. 그렇지 않으면 그것이 기여한다고 생각합니다. (이 대신 편집을 원하면 알려주십시오).
Juan Diego Gonzales

Homebrew를 설치할 때 하나의 라이너를 사용하십시오
user151019

7
이 답변이 도움이되었다는 것을 알았습니다. 터미널을 다시 시작하는 것은 .bash_profile의 작업에 익숙하지 않은 많은 사람들에게 명백한 문제이며 나머지 사람들에게도 상기시켜줍니다.
Magne

@JuanDiegoGonzales 훌륭한 관찰! git을 설치 한 후 똑같은 것을 궁금해하고 이유를 몰랐습니다. 애프터 캐시 : 힌트, 나는 좀 더 연구했다 unix.stackexchange.com/q/5609/52921
kstratis을

4

입력 할 때

git --version

Terminal.app 또는 콘솔에서 다른 질문에 대한 귀하의 의견은 반환되는 버전이 / usr / bin / git의 git임을 나타냅니다.

Xcode 4.5 이상을 설치 한 경우 다음을 입력하십시오.

xcrun git --version

Terminal.app 또는 콘솔에서 반환되는 버전은 Xcode 앱 번들의 자식입니다.

Homebrew를 사용하여 git을 설치 및 업데이트하는 경우 가장 간단한 해결책은

  1. 관리자 비밀번호를 묻는 메시지가 표시되면 관리자 권한이 있어야합니다
  2. mv를 사용하여 이름을 바꾸어 원래 위치의 이름을 바꿉니다. 예를 들어

    sudo mv / usr / bin / git / usr / bin / git-ORIGINAL

  3. Homebrew와 함께 설치 한 git 바이너리에 'ln -s'를 사용하여 소프트 링크를 만듭니다.

MattDMo는 주석에서 더 나은 솔루션을 제공합니다.


이 100 % 안전합니까? 맥 관련 문제가 있습니까?
Levani 2016 년

설명 된 단계를 수행하면 해당 git 실행 파일이 삭제되지 않으므로 솔루션이 사전 설치된 항목을 중단하지 않습니다. 이것이 2 단계에서 예를 들어 / usr / bin / git와 같이 원래 / usr / bin / git의 이름을 바꿔야하는 이유입니다. 백업
Global nomad

10
/usr/bin알지 못하는 다른 프로그램은 특정 버전과 관련된 vagaries에 의존 할 가능성이 있기 때문에이 문제를 해결 하지 마십시오. 아무것도 움직이지 않고 가장 쉬운 해결책은 IIRC, homebrew 설치 전에 환경 변수 를 추가 /usr/local/bin하는 것 $PATH입니다/usr/bin/usr/local/bin
MattDMo

@MattDMo에게 감사드립니다.이 경우 가장 좋은 방법 인 것 같습니다.
Levani

2

나는 이것을 시도했고 그것은 나를 위해 일한다.

brew link --overwrite git

모하비에서 나를 위해 일했습니다 (10.14.4)
후추

1

일반적으로 brew stuff가있는 경로 디렉토리 이전 에 /usr/bin/있기 때문에 git-org 로 애플에 의해 원래 git의 이름을 바꿔야합니다 ./usr/bin/usr/local/bin

그래서:

cd /usr/bin
sudo mv git git-org

brew git을 연결하는 것을 잊지 마십시오

brew link git

이것은 환경 변수 /usr/local/bin에 있다고 가정 $PATH합니다. 여전히 문제가 발생하면 실행을 시도하십시오.

brew doctor 

거기에 언급 된 문제를 해결하십시오.


3
/ usr / bin에있는 이름을 바꾸거나 변경하지 마십시오. Apple 도그를 손상시킬 수 있으므로 시스템 또는 XCode 업데이트를 수행 할 때 끊어 질 수 있습니다. 설계된 경로를 사용하십시오.
user151019

@ 점을 지적하십시오. 그러나 / usr / bin에서 git 만 변경하면 문제가 발생할 것이라고 생각하지 않습니다. 나를 위해 몇 달 동안 일하고 있습니다.
Pfitz 2016 년

나는 / usr / bin에서 일반적으로 변경하는 것은 나쁜 소식이지만 동의하지만 실제로 git을 사용하여 OS X를 기억할 수는 없기 때문에 그로 인한 피해는 적을 수 있으며 영수증과 일치하는 "깨끗한"시스템에만 관련됩니다. OS X에 대한 업데이트는 새 git을 이전 버전으로 대체 할 수 있으므로 시스템 경로 위치 외부에서 새 바이너리를 찾는 것이 일반적입니다.
bmike

3
이름을 바꾸거나 백업하는 등 의 작업을하는 대신에 /usr/local/bin(homebrew의 설치 디렉토리, IIRC) 를 추가하는 것이 훨씬 쉽다고 생각합니다 .$PATH/usr/bin
MattDMo

1

brew와 함께 git을 설치하십시오.

brew link --force git

터미널을 닫았다가 다시 열어 실행 which git합니다.


1
기본 경로는 어떻게 변경됩니까?
user151019

이것은 xcode의 자식을 재정의하는 데 도움이되었습니다.
surjikal

이것을 실행할 때 오류가 발생했지만 brew link --overwrite git작동했습니다
wickdninja

0

git-scm.com에서 직접 git을 설치하고 apple (old) 버전의 git 대신 최신 다운로드 git을 사용하려는 경우.

  1. git-scm.com에서 git 설치
  2. 아마도 새로운 자식은 아마도 /usr/local/bin/git
  3. git --versiongit의 Apple 이전 버전을 반환하면 아래에서 시도하십시오 .
  4. cd ~ (디렉토리를 홈 디렉토리로 변경)
  5. 유형 vi .bashrc
  6. 사용 i(vi 편집기에서 텍스트를 삽입 하려면 )
  7. 당신이 선을 발견하면 export PATH.......눌러 수출의 상단에 입력하고 다음을 입력 : export PATH=/usr/local/:$PATH(에 특히주의를 기울 PATH그것은 당신의 OS에 대한 문제를 일으킬 수 그것을 다른 변수하지 엉망 최대) (잘하면 새로운 자식이에 설치되어 있어야합니다 /usr/local/git)
  8. esc를 누르십시오
  9. 입력 :wq( .bashrc파일 저장 )
  10. 터미널을 종료하고 새 터미널을 시작하십시오
  11. 이제 시도 git --version하십시오 (새 버전이 표시되어야 함)

-1

당신의 자식이 어디에서 왔는지에 달려 있습니다. Xcode는 예를 들어 경로에 앞선 버전을 제공합니다.

아마 타이핑

which git

오래된 것이 어디에 있는지 보여줄 것입니다.


그것은 /usr/bin/git...
Levani

2
그것은 두 개의 설치처럼 보입니다. 나는 정상적인 (다운로드 가능한) git 버전이 / usr / local / git /로 간다고 생각합니다. 경로에 추가하거나 다른 (또는 둘 다) 제거하는 문제입니다
Nicholaz

-2

gcc를 사용한 컴파일과 관련된 OSX에서 Homebrew를 사용하여 무엇이든 업그레이드하려면 Xcode에서 업데이트 된 명령 줄 도구가 있는지 확인하십시오. 예, 앱 환경 설정에서 시스템 전체 도구를 숨겨야한다는 것을 알고 있습니다.

단계

  1. Xcode.app —> 환경 설정 —> 다운로드로 이동하십시오.
  2. 명령 줄 도구 업데이트 (또는 설치)
  3. brew doctor다른 모든 방해 요소를 실행 하고 수정 하십시오.
  4. brew upgrade한 번에 모든 패키지를 업그레이드하기 위해 실행
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.