답변:
의미있는 커밋 메시지를 제공하는 것은 좋은 개발 관행과 좋은 저장소 관리의 일부이기 때문에 git은 일반적으로 비어 있지 않은 메시지를 요구합니다. 커밋 메시지의 첫 번째 줄은 git 내의 모든 곳에서 사용됩니다. 자세한 내용은 "Git 커밋 메시지에 대한 참고 사항"을 참조하십시오 .
Terminal.app, cd
프로젝트 디렉토리 및 을 열면 git commit -am ''
빈 커밋 메시지가 허용되지 않기 때문에 실패한 것을 볼 수 있습니다. 최신 버전의 git에는
--allow-empty-message
최신 버전의 Xcode에 포함 된 git 버전을 포함 하여 명령 줄 인수가 있습니다. 이렇게하면이 명령을 사용하여 빈 메시지를 커밋 할 수 있습니다.
git commit -a --allow-empty-message -m ''
--allow-empty-message
깃발 이전 에는 commit-tree
배관 명령 을 사용해야했습니다 . 당신은이 명령을 사용하는 예를 볼 수 있습니다 은 "원시 힘내"장 의 망할 놈의 책 .
git
에는 --allow-empty-message
명령 줄 인수가 있습니다. 여기 에서 설명서를 참조 하십시오 . 배관 명령을 사용하여 동일한 작업을 수행 할 수 있었음을 언급합니다 git-commit-tree
.
git diff
는 사람이 작성한 설명에 의존하지 않고 커밋에 포함 된 내용을 이해 당사자에게 정확히 보여주기 때문에 정보가 적 으면 혼동이 줄어드는 경우가 있습니다. 기계는 가능한 한 노동으로부터 우리를 구해야합니다.
git diff
자명하지 않습니다.
그리고 별칭을 추가하면 더 좋습니다.
git config --global alias.nccommit 'commit -a --allow-empty-message -m ""'
이제 주석이 없기 때문에 nccommit, nc를 수행하면 모든 것이 커밋되어야합니다.
중요한 코드 업데이트 작업을 할 때 중간 Safepoint가 정말로 필요한 경우 다음을 수행 할 수 있습니다.
git commit -am'.'
이하 :
git commit -am.
diff
합니다.
참고 : 시작 git1.8.3.2 (2013 7월), (다음 명령을 위에서 언급 한 에 의해 제레미 W 셔먼은 ) 더 이상 편집기를 열 수 없습니다 :
git commit --allow-empty-message -m ''
커밋 25206778aac776fc6cc4887653fdae476c7a9b5a 참조 :
-m
git commit 옵션 으로 빈 메시지를 지정 하면 편집기가 시작됩니다.
그것은 예상치 못한 일이고 불필요합니다.
사용자가 지정했는지 확인하기 위해 메시지 문자열의 길이를 사용하는 대신 옵션-m
이 제공 되었는지 직접 기억하십시오 .
git 2.9 (2016 년 6 월)는 빈 메시지 동작을 개선합니다.
Adam Dinwoodie ( )의 commit 178e814 (2016 년 4 월 6 일)를 참조하십시오 . Jeff King ( )의 commit 27014cb (2016 년 4 월 7 일)를
참조하십시오 . (의해 병합 - Junio C 하마노 - 에서 0,709,261 커밋 2,016 22 사월)me-and
peff
gitster
commit
: 빈 메시지를 무시하지 마십시오.-m ''
- "
git commit --amend -m '' --allow-empty-message
"은 이상해 보이지만 메시지가 전혀 없도록 커밋을 수정하라는 유효한 요청입니다. 명령 줄에
의 존재가 잘못 감지-m
되어 원래 커밋의 로그 메시지를 유지하게되었습니다.- "
git commit -m "$msg" -F file
"$msg
은 (는) 빈 문자열 이든 아니든 거부되어야 하지만 동일한 버그로 인해이$msg
비어 있을 때 거부되지 않았습니다 .- "
git -c template=file -m "$msg"
"은 ($msg
는) 비어있는 경우에도 템플릿을 무시해야 하지만 대신 템플릿 파일의 콘텐츠를 사용했습니다.
이를 수행하기 위해 git이 필요하지 않습니다. bash 함수를 창의적으로 사용하면 문제가 해결됩니다. 메시지에 신경 쓰지 않는다면 기본 메시지를 설정하고 잊어 버리십시오.
function gitcom() {
git commit -m "my default commit message"
}
정말 모험심이 있다면 하나의 명령으로 추가, 커밋 및 푸시 할 수 있습니다.
function gitzap() {
git add . && git commit -m "whatevs" && git push $1 $2
}
그러면 다음으로 실행됩니다.
gitzap origin master
더 깊이 들어가서 parse_git_branch를 사용하여 몇 가지 키 입력을 저장하거나 "origin"및 "master"의 공통 기본값을 설정할 수도 있습니다.
git-com
하고 git-zap
(확장자없이) git이 찾을 수있는 어딘가 (즉, PATH 어딘가)에 배치하면 git은이를 일반 git 명령처럼 취급하고 다음과 같이 호출 할 수 있습니다. git com
,git zap origin master
Git은 커밋에 주석이 필요합니다. 그렇지 않으면 커밋을 수락하지 않습니다.
git을 기본 커밋 메시지로 사용하여 기본 템플릿을 구성하거나 git에서 --allow-empty-message 플래그를 조회 할 수 있습니다. 나는 (100 % 확실하지 않다) 빈 커밋 메시지를 받아들이도록 git을 재구성 할 수 있다고 생각한다 (좋은 생각은 아니다). 일반적으로 각 커밋은 메시지에 설명 된 약간의 작업이어야합니다.
커밋 메시지는 항상 따라야하는 모범 사례입니다. 당신이 유일한 개발자가 아니라면 곧 변경되지 않을 것입니다.
git commit -a -m 'asdfasdfadsfsdf'
git commit -a --allow-empty-message -m ''
더 이상 편집기도 열지 않습니다. 보기 내 대답은 아래