2016-06-14 2 views
9

일부는 로컬 저장소에 커밋 할 때마다 실행중인 git hook이 있습니다.터미널/명령 줄 내에서 git hook이 호출되고 있는지 확인하는 방법

일부 사람들은 터미널에서 커밋하고 일부 사람들은 SourceTree 또는 SmartGit 또는 다른 타사 응용 프로그램으로부터 커밋을하고 있습니다.

SourceTree는 후크의 경우 다르게 동작합니다. 예를 들어, 오류는 기본적으로 빨간색이며 사용자 입력이 지원되지 않는 것 같아서 사용자가 SourceTree 또는 SmartGit 등에서 커밋하고 있는지 여부에 따라 Python 스크립트를 변경해야합니다.

내 대본 안에서 이것을하기 위해서?

+0

'printenv'를 사용하여 환경 변수를 비교해 보았습니까? – Dario

+0

@Dario 아니, 나는 그것을 시도하고 다시 연락 할 것입니다. – Ogen

+0

@Dario 'print os.environ'을 사용하고 있습니다. 그게 니가 염두에 두었던거야? 이 산출물에서 정확히 무엇을 검사해야합니까? – Ogen

답변

5

이 파이썬 코드를 사용하여이 문제를 해결할 수있었습니다. 제 3 자 자식 클라이언트의 발생에 대한 환경 변수를 간단히 검사합니다. 나는 그것이 최선의 해결책인지, 아니면 항상 작동 할 지 모른다. 그러나 지금은 내 필요를 충족시킨다.

is_terminal = True 

for key in os.environ: 
    if "SourceTree" in os.environ[key] or "SmartGit" in os.environ[key]: 
     is_terminal = False 
     break 
관련 문제