명령 행을 통해 Git 커밋 메시지에 느낌표 사용


152

명령 행에서 Git 커밋 메시지에 느낌표를 어떻게 입력합니까?

느낌표를 백 슬래시로 이스케이프 할 수 있지만 백 슬래시는 커밋 메시지에서도 끝납니다.

나는 이런 것을 원한다.

git commit -am "Nailed it!"

6
이 문제가 처음 발생한 이유에 대한 설명 : askubuntu.com/questions/434832/…
Mark Amery

답변:


226

큰 따옴표 대신 작은 따옴표를 사용하십시오.

git commit -am 'Nailed it!'

또는 어떤 이유로 든 큰 따옴표를 사용해야하지만 여전히 리터럴 !을 원할 경우 다음을 통해 스크립트 상단에서 기록 확장을 해제하십시오set +H


48
또는 당신의 인용문을 섞어 라 :git commit -am "$FOO: Nailed it"'!'
Cascabel

4
이것은 OS X에서 작동하지 않았으므로 방금 git commit(-m 없음)을 사용하여 메시지의 텍스트 편집기를 열었습니다.
Kevin C.

OSX에서는 git commit -m "This is the best code ever"!@Ryan H. 답변에 설명 된대로 사용하십시오 .
mljrg

42

그것을 해결하는 또 다른 방법은 뒤에 공백 을 추가하는 것입니다 ! 처럼:

git commit -am "Nailed it! "

사이 의 공백에 유의하십시오 ! 그리고 마지막 " .

(공백 메시지에는 공백이 포함되지 않습니다. Git은 자동으로 커밋 메시지에서 후행 공백을 제거합니다.)


3
이것은 나에게 가장 간단한 해결책으로 보이며 변수 보간으로 큰 따옴표를 허용합니다 : git commit -m "$(sillyname) $(buzzphrase). $(superb)! ":)
Alex Hall

4

대신 따옴표 나 이스케이프를 기억할 필요가 없습니다.

  1. 명령 (또는 그 일부)을 입력하십시오
  2. 커맨드 라인에서 Ctr X E»를 누르면 "외부 편집기"가 열립니다.
  3. 명령을 편집하고 편집기를 닫으십시오.

… 명령이 실행되고 Git 커밋 메시지에 특수 문자가 올바르게 표시됩니다!

(NB 많은 다른 용도 : 복잡한 명령 입력, 커밋 메시지에 줄 바꿈 추가 등)


4

큰 따옴표를 사용해야 !하고 메시지의 마지막 문자 는 따옴표 밖에 사용 하지 마십시오 !. 따옴표 만 사용하므로 공백이 메시지에 포함되기 때문입니다.

git commit -m "Reverting last commit because I don't like it"!

!중간 문자열 을 포함해야하는 경우 작은 따옴표를 사용할 수 있지만 리터럴 작은 따옴표를 사용해야하는 경우 따옴표를 닫은 다음 '이스케이프하여 문자열 외부 를 배치해야 합니다. 자, 당신의 메시지라고하자 I don't like it! Reverting again!이가 함께 구성 할 수있다, 'I don'+ \'+'t like it! Reverting again!'

git commit -m 'I don'\''t like it! Reverting again!'

이것보다 더 복잡한 것은 아마도 git commitgit이 기본 텍스트 편집기를 호출하게하는 것이 좋습니다. :)


1

다음을 입력 할 수도 있습니다.

git commit -am "Nailed it
!
"

Enter 키를 누르고 느낌표를 새 줄에 놓고 커밋 메시지를 닫습니다. 언젠가 우연히 발견했습니다.


6
이렇게하면 느낌표 앞에 문자 그대로의 개행 문자가 커밋 메시지에 삽입됩니다. -1.
Mark Amery

-3

흠. 슬래시로 이스케이프 처리해도 커밋 메시지에 표시되지 않습니다.

git commit -m "Nailed it\!"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.