Programing

해시 마크 (#)로 git commit 메시지를 시작하십시오

lottogame 2020. 3. 31. 08:12
반응형

해시 마크 (#)로 git commit 메시지를 시작하십시오


Git은 #커밋 할 때 주석 줄로 시작하는 줄을 처리합니다 . 이것은 티켓 추적 시스템으로 작업 할 때 매우 성가 시며 라인 시작 부분에 티켓 번호를 쓰려고합니다.

#123 salt hashed passwords

git은 커밋 메시지에서 단순히 라인을 제거합니다. 해시를 피할 수있는 방법이 있습니까? 나는 시도 \하고 !, 그러나 아무것도 작동하지 않습니다. 이전의 공백 #은 유지되므로 문제에 대한 해결책이 아닙니다.


이 동작은 git commit'기본'정리 '동작의 일부입니다 . 라인을 계속 시작 #하려면 다른 정리 모드를 사용할 수 있습니다.

예 :

git commit --cleanup=whitespace

이렇게하면 #커밋에 표시하고 싶지 않은 모든 을 제거해야 합니다.


git1.8.2 (2013 년 2 월) 부터 #커밋 메시지의 주석 처리 된 행에 ' '와 다른 문자를 사용할 수 있습니다 .

그러면 #버그 번호 참조에 ' ' 를 사용할 수 있습니다 .

편집기에서 메시지를 편집하도록 사용자에게 요청할 때 Git이 제공하는 다양한 "힌트"라인은 #기본적 으로 ' '로 주석 처리됩니다 .

core.commentChar구성 변수는이 '를 사용자 정의하는 데 사용할 수있는 #다른 문자로'.


이론적 으로 단어 (여러 문자)를 넣을 core.commentChar있지만 git 2.0.x / 2.1이 더 엄격해질 것입니다 (2014 년 3 분기).

참조 50b54fd 커밋 에 의해 (응웬 타이 응옥 두이 pclouds) :

구성 : core.commentChar에 엄격해야합니다.

우리는 주석 문자열을 지원하지 않습니다 (적어도 아직은 아닙니다). 그리고 멀티 바이트 문자 인코딩도 잘못 해석 될 수 있습니다.

두 개의 쉼표가있는 테스트는이를 위반하므로 업데이트됩니다. eff80a9 (커스텀 "comment char" -2013-01-16 허용)에 도입 core.commentChar 패치와 함께 추가되었습니다 . 그런 행동이 필요한지 분명하지 않습니다 .


git 2.0.x / 2.1 (Q3 2014)은 다음에 대한 자동 선택을 추가합니다 core.commentChar. 커밋 84c9dc2
참조

core.commentChar"입니다 auto", 주석의 char '로 시작하는 #기본에서와 같이'이지만 준비된 메시지에 이미있는 경우, 작은 부분 집합의 다른 문자를 찾을 수 있습니다. 자식이 예기치 않게 일부 줄을 제거하기 때문에 놀라움을 멈추어야합니다.

git은 #사용자 정의 템플릿에서 ' '를 주석 문자로 인식 하고 최종 주석 문자가 다른 경우 변환하기에 충분히 똑똑하지 않습니다 .
커밋 메시지의 일부로 사용자 정의 템플릿의 '#'행을 생각합니다. 따라서이 템플릿을 사용자 정의 템플릿과 함께 사용하지 마십시오.

"auto"후보 문자 목록은 다음과 같습니다.

# ; @ ! $ % ^ & | :

이는 커밋 메시지에 ' '가 사용 되었기 때문에 이와 같은 명령 git commit -m '#1 fixed issue'이 commentChar를 ' ;'로 자동 전환 한다는 것을 의미 #합니다.


여기에 대한 답변은 훌륭하고 상세하지만 git config 옵션을 사용자 정의하는 것과 같은 git noob의 경우 그렇게 분명하지 않습니다. 다음은 주석 문자 에서 #변경하는 예입니다 ;.

git config core.commentChar ";"

그게 당신이해야 할 전부입니다.


명령 행 옵션을 사용할 수 있습니다 -m.

git commit -m "#123 fixed"

대화식 리베이스를 수행하는 경우 커밋 메시지를 아무것도 저장하지 않으면 ( #처음에는 주석을 작성했기 때문에 무시되었으므로) git은 수행 할 작업을 보여줍니다.

Aborting commit due to empty commit message.
Could not amend commit after successfully picking 5e9159d9ce3a5c3c87a4fb7932fda4e53c7891db... 123 salt hashed passwords
This is most likely due to an empty commit message, or the pre-commit hook
failed. If the pre-commit hook failed, you may need to resolve the issue before
you are able to reword the commit.
You can amend the commit now, with

        git commit --amend

Once you are satisfied with your changes, run

        git rebase --continue

따라서 메시지를 수정하십시오.

git commit --amend -m "#123 salt hashed passwords"

리베이스를 계속하십시오 :

git rebase --continue

git commit --cleanup=scissors사용되어야한다. 2014.05.21 Git v2.0.0추가되었습니다.

...에서 git commit --help

--cleanup=<mode>
  scissors
    Same as whitespace, except that everything from (and including) the line
    "# ------------------------ >8 ------------------------" is truncated if the message
    is to be edited. "#" can be customized with core.commentChar.

티켓 번호에 다른 접두사를 사용하십시오. 또는 "버그 # 42"와 같이 티켓 번호 앞에 단어를 추가하십시오. 또는 단일 공백 ​​문자를 줄 앞에 추가하십시오. 해당 공백을 제거하려면 커밋 후크를 추가하십시오.

나는 개인적으로 후크에 의해 수행되는 이러한 종류의 커밋 메시지 조작을 원하지 않을 것입니다. 가장 쉬운 해결책은 아마도 문제를 다시 생각하는 것입니다.


모든 커밋은 다음과 #issueNumber같이 시작합니다 vim .git/hooks/commit-msg.

NAME=$(git branch | grep '*' | sed 's/* //') 
echo "$NAME"' '$(cat "$1") > "$1"

이제 분기 #15가 있고 커밋 메시지를 작성 한다고 가정 해 봅시다 add new awesome feature. 이 방법을 사용하면 최종 커밋 메시지가됩니다 #15 add new awesome feature.

참고 URL : https://stackoverflow.com/questions/2788092/start-a-git-commit-message-with-a-hashmark

반응형