2012-01-20 3 views
21

나는 git.cmd가 단지 래퍼 (그러나 기본적으로 PATH에 추가됨)라는 거친 생각을 가지고 있지만, git.exe도 잘 작동한다는 것을 알았고 이것을 해결 방법으로 사용하려고한다. 오히려 XP64의 chcp 관련). 어떤 이유로 든 추천하지 않겠습니까? 또한, 처음에는 git.cmd가 정말로 필요합니까?git.cmd vs git.exe - 차이점은 무엇이며 어떤 것을 사용해야합니까?

참고 : 나는에 따르면 'chcp' is not recognized as an internal or external command, operable program or batch file. on a Windows PC

답변

23

git.cmd은 현재 버전의 msysgit (예 : 1.8.0)에서는 더 이상 존재하지 않습니다. git.cmdgit.exe이라는 새로운 래핑으로 대체 된 래퍼였습니다. 이 내용을 실제 git.exe과 혼동하지 마십시오. 래퍼는 위해 오랫동안 msysgit에 존재하고있다

Git 
|-- bin 
| |-- git.exe 
|-- cmd 
    |-- git.exe 

제대로 환경을 설정하려면 : %ProgramFiles(x86)% 또는 %ProgramFiles%에서 망할 놈의 디렉토리를 살펴 경우

, 당신은 다음과 같은 구조를 볼 수 있습니다 cmd.exe에서 git 사용하기. 포함 된 bash 쉘을 사용 중이면 git.exe가 직접 실행됩니다.

현재 새로운 실행 래퍼 이전 cmd를 버전을 비교할 수 있습니다 만,

  1. git.cmd
  2. git.exe wrapper

당신은 정말 마법의에 대해 걱정할 필요가 없습니다 msysgit bash 환경 이외의 것에서 래퍼를 호출해야한다는 것을 이해하십시오.설치 프로그램의 경로에 git을 추가하면 Git \ cmd 디렉토리가 추가됩니다. 다른 msys 또는 cygwin 설치가있는 경우, 많은 문제를 야기 할 수 있으므로 포함 된 유틸리티를 시스템 경로에 추가하는 것을 권장하지 않습니다. 나는 최근의 기억에서 실제로 그것을 시도한 적이 없지만 cmd을 우선시하여 경로에 cmdbin 디렉토리를 둘 다 상상할 것입니다.

새로운 git.exe 래퍼에는 큰 장점이 있습니다. git를 더 이식성있게 만드는 코드를 만듭니다. 이전에 git이라는 python 스크립트를 작성한 경우 쉘 환경 (subprocess.Popen() : shell=True)으로 명령을 실행하거나 cmd 파일을 명시 적으로 실행해야합니다. 이제 OS에 관계없이 'git'을 이름으로 사용하여 프로세스를 실행할 수 있습니다. 이는 Windows의 CreateProcess()가 배치 파일 (.cmd.bat의 별칭)을 실행하지 않기 때문에 실행하려면 cmd.exe을 호출해야합니다.

5

에서 실종 PATH 항목에 의해 발생하지 않습니다를 참조 오전 CHCP 발행 git for windows installer 당신이 설치하는 동안 경로에 git.exe를 추가 할 수있는 옵션을 갖게됩니다. 그 옵션을 사용하면 괜찮을 것입니다. 당신이 msysgit를 설치할 때

Option screen to select git.exe

+0

그래서 git.cmd를 사용하면 첫 번째 옵션을 언급하는 것이 맞습니까? – prusswan

+0

AFAIK 예, 일반 cmd 프롬프트에서 git.exe를 사용하려면 두 번째 옵션을 선택했습니다. –

13

세 가지 옵션이 있습니다.

  1. 첫 번째

    아무것도 PATH에 넣어되지 않으며 당신이 망할 놈의 배쉬를 사용하는이 것입니다.

  2. 두 번째는 git.cmdgitk.cmd 그래서 당신이 cmd를에서 사용할 수있는 PATH에 추가, 파워 쉘, 당신은 윈도우에있는 다른 도구에 영향을주지 않고 등을 Cygwin에서이다. 이 git.cmd은 질문에 대답하기 위해이 작업을 수행하는 래퍼입니다.

  3. 세 번째로 (내 마음에 드는 것) git.exe의 모든 도구를 추가하여 PATH에 사용하고 있습니다. 이것은 Windows 도구에 영향을 미치며 MSYS가 제공하는 모든 도구 세트를 사용할 수 있습니다.

나는 항상 세 번째 옵션을 사용했습니다. 나는 Powershell 및 powershell cmdlet을 사용하고 Windows 명령은 절대로 사용하지 않는다. 그런 식으로 Mingw exes를 마음대로 사용하려면 세 번째 옵션으로 가면 좋을 것입니다.