Git을 사용하는데 유용한 정도까지는 아니지만 얼마전에 트위터에서 알게된 환경변수를 적어봅니다. git에서는 GIT_TRACE라는 환경변수를 제공하고 있고 이 환경변수에 1을 할당하면 git 명령어가 실행되는 과정을 추적해 줍니다. 그냥 명령어를 어떻게 파싱하고 처리해주는지를 추적해 주는 정도이고 내부 진행과정을 추적해 주는 것은 아닙니다.
위처럼 git 명령어를 실행할 때 GIT_TRACE=1를 앞에 붙혀서 git 명령어가 환경변수를 사용하도록 하면 추적이 됩니다. 환경변수에 등록해도 동일하겠지만 굳이 그럴 정도로 유용해 보이지는 않습니다. 위 실행결과에서 보듯이 trace: 라는 접두사가 붙으면서 내장 명령어인 git 'init'이 실행된 것을 볼 수 있습니다.(당연한거죠.)
저는 status 명령어에 st라는 별칭을 주어서 사용하기 때문에 git st를 실행하자 명령어가 없음을 확인하고 st를 status로 변환해서 실행하고 있습니다.
좀 더 복잡한 실행과정의 git push를 실행해 봤습니다. 명령어를 다 이해는 못하지만 푸쉬를 실행하는 과정이 적나라하게 나오고 있습니다.(실해오가정중 git-receive-pack부터 시작하는 과정은 ProGit의 내부동작을 설명한 챕터에서 본 기억이 나는군요.)
이처럼 git 명령어가 실행되는 것을 확인해 보고 싶으시면 GIT_TRACE 환경변수를 사용하시면 됩니다.
Comments