2014-09-28 2 views
1

다음은 내 문제를 보여주는 간단한 예입니다. 내가 할 경우Git 별칭에서 백틱 명령 실행 사용

git commit -m "`date --utc`" 

date --utc을 실행하고, 커밋 메시지 안에 결과를 저장합니다. 그러나

, 나는 그것이 testcomit하는 별칭 :

git config --global alias.testcommit 'commit -m "`date --utc`"' 

`date --utc` 부분을 실행하지 않습니다 git testcommit을하는, 그것은 대신 커밋 메시지는 그대로 둔다.

그럼이 별칭을 date --utc을 실행하려면 어떻게해야합니까? the documentation에서

+2

내가 "자식은 -m 저지! * 당신은'자식 설정 --global alias.testcommit '를 사용할 수 있다고 생각 $를 * (날짜 --utc) " ''. 트릭은'!'로 전체 별명을 쉘 명령으로 만듭니다 (그러므로'git'), 자세한 내용은 here [http://git-scm.com/docs/git-config]를 읽으십시오. 역 인용 부호 대신'$()'는 관련이 없지만 사용을 시작해야합니다.)하지만 커밋 시간은 기본적으로 저장되므로 메시지에 넣을 이유가 없습니다. – Biffen

+0

@Biffen 덕분에 작동하는지 확인해 보도록하겠습니다. 시간에 대해 알고 있습니다.이 문제를 보여주는 예일뿐입니다. –

+0

@Biffen, 놀라워요! 그것은 효과가 있었다. 대답으로 적어주세요. 받아 들일 것입니다. –

답변

7

:

별칭 확장이 느낌표로 시작의 경우는 쉘 명령으로 처리됩니다.

그래서 당신은 사용할 수 있습니다 : 당신이 거기에 git을 넣어야 할

git config --global alias.testcommit '!git commit -m "$(date --utc)"' 

참고, 당신은 지금 전체 쉘 명령을 지정하고 있기 때문이다.

(대신 역 따옴표의 $()는 무관하지만, 그래서 당신이 그것을 사용하기 시작해야 좋습니다.)