programing

마지막 git 커밋 주석 표시

golfzon 2023. 4. 14. 22:33
반응형

마지막 git 커밋 주석 표시

커밋 중에 많은 경우($ git -commit -m "")의 마지막 코멘트를 읽고, 지금까지의 진척을 기억하고 싶다.명령줄에서 마지막 커밋 메시지에 직접 액세스할 수 있는 쉬운 방법이 있습니까?(Windows 를 사용하고 있습니다).

git show

가장 빠르게 입력할 수 있지만 차이도 표시됩니다.

git log -1

빠르고 심플합니다.

git log -1 --pretty=%B

커밋 메시지만 필요한 경우.

일반적으로:

git log -n

마지막을 보여드릴게요n커밋 메시지

보다 우아하게 - 커밋에 대한 간단한 개요를 원하는 경우

git log --oneline -n

마지막 줄의 첫 번째 줄만 표시됩니다.n커밋 메시지

이를 git 에일리어스 또는 shell 에일리어스로 저장할 수 있습니다.라고 생각하고 있다.glog예를 들어, 마지막 10개의 커밋메시지를 표시할 수 있습니다.glog -10.

사용할 수 있습니다.

git show -s --format=%s

여기서--format에서는, 다양한 인쇄 옵션을 사용할 수 있습니다.여기에 있는 메뉴얼을 참조해 주세요.구체적으로는%s'불편'을 의미합니다.게다가.-s의 약자--no-patchdiff 콘텐츠를 억제합니다.

자주 사용합니다.

git show -s --format='%h %s'

어디에%h커밋의 짧은 해시를 나타냅니다.

또 다른 방법은

git show-branch --no-name HEAD

다른 쪽보다 빨리 달리는 것 같아요.

실제로 편집 상태, 리모트 브랜치와의 관계 등 모든 저장소의 상태를 확인하기 위한 작은 도구를 작성했습니다.또, 임의의 작업 디렉토리에서 커맨드를 일괄 실행합니다.

기써브에서 찾을 수 있어요.

여기에 이미지 설명 입력

git log -1최신 커밋메시지가 표시됩니다.git log -1 --onelinesha1 및 관련 커밋메시지만 표시하는 경우.

git log -1 branch_name지정된 브랜치로부터의 마지막 메시지가 표시됩니다(즉, 현재 브랜치일 필요는 없습니다).

좀 더 읽기 쉬운 내용을 보려면 다음 명령을 한 번 실행합니다.

git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"

따라서 실행 시:

git lg

좋은 결과를 얻을 수 있습니다.마지막 줄만 표시하려면:

git lg -1

솔루션은 이쪽

커밋 메시지의 제목(첫줄)만 표시하는 경우:

git log -1 --format=%s

이것은 이전에 어떤 답변에서도 문서화되어 있지 않았다.또는 nos에 의한 접근법도 이를 보여준다.

레퍼런스:

우선git log -1 --pretty='%s'

하지만 아래 건은 모든 사건을 망라하고 있어요

git log --pretty='format:%Creset%s' --no-merges -1

  • 불필요한 공백 없음
  • 병합 커밋을 폐기합니다.
  • No commit id, date 메시지만 표시합니다.

붙여넣기 및 보기

나는 이 일을 했다.

git reflog -1 | sed 's/^.*: //'

이 명령어는 마지막 커밋메시지를 가져옵니다.

git log -1 --oneline --format=%s | sed 's/^.*: //'

출력은 다음과 같습니다.

Create FUNDING.yml

취득한 커밋메시지 범위를 늘리기 위해 -1을 임의의 음수로 변경할 수 있습니다.

커밋 메시지 내의 이전/현재 커밋메시지를 코멘트로 표시할 수 있습니다.

touch .git/hooks/prepare-commit-msg
chmod +x .git/hooks/prepare-commit-msg
$EDITOR .git/hooks/prepare-commit-msg

내용:

#!/bin/sh

COMMIT_MSG_FILE=$1

printf "# Previous commit message:\n" >> $COMMIT_MSG_FILE
printf "#\n" >> $COMMIT_MSG_FILE
git log -1 --pretty=format:%B | sed -e 's/^/# /' >> $COMMIT_MSG_FILE

인 경우(「」).HEAD

Simplify further

Simplicity always wins!

다음으로 커밋 메시지가 에디터에 표시됩니다.

<cursor>

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch strs
# Changes to be committed:
#     new file:   test.txt
#
# Previous commit message:
#
# Simplify further
# 
# Simplicity always wins!

하지만 이것은 꽤 결점이 있다. git commit --amend는 같은합니다.「 」 「 」 「 」

Simplify further

Simplicity always wins!

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Date:      Thu Mar 2 20:30:46 2023 +0100
#
#  On branch strs
#  Changes to be committed:
#     modified:   git-branchless-lib/src/git/object.rs
#     new file:   test.txt
#
# Previous commit message:
#
# Simplify further
#
# Simplicity always wins!

그러나 간단한 사용 사례에서는 이 방법으로도 충분할 수 있습니다.

방금 전 명령어를 검색하여 셸에 대한 회피책을 알아냈습니다.

Ctrl+R을 눌러 역방향 검색 명령을 표시합니다.

reverse-i-search

그런 다음 git commit -m을 입력하면 이것이 검색 명령어로 추가되고 이전 git commit이 메시지와 함께 나타납니다.

reverse-i-search`git commit -m`: git commit -m "message"

들어가세요. 바로 그거야!

(Ubuntu 쉘에서 테스트 완료)

언급URL : https://stackoverflow.com/questions/7293008/display-last-git-commit-comment

반응형