Git Log를 사용하여 커밋 기록을 포맷하는 방법은 무엇입니까?



Git은 애플리케이션의 소스 코드를 구성하고 관리하는 데 도움이되는 도구입니다. git log format history 명령 및 사용 방법에 대해 모두 알아보십시오.

이 기사에서는 프로젝트 저널 기록에서 필요한 정보를 가져 오기 위해 커밋 로그를 포맷하고 인쇄하는 몇 가지 고급 옵션에 대해 설명합니다. 이미 알고 있기 때문에 프로젝트 기록에 커밋 된 변경 사항에 대한 저널을 유지합니다. 이제 'git log'명령이 도움이되는 더 많은 방법을 살펴 보겠습니다.

첫째, 편리하고 짧은 기록을 위해“feature1”브랜치로 전환 / 체크 아웃하고 있습니다.
명령 사용 –





$cd myProj–git 프로젝트로 전환

$git checkout feature1–‘feature1’분기로 이동



1. 서식 커밋

1.1 출력 내용을 주어진 형식으로 예쁘게 인쇄

통사론: git log --pretty [=]

어디, 다음 중 하나 일 수 있습니다 한 줄, 짧은, 매질, 완전한, 풀러, 이메일, 노골적인, 및 체재:
언제 = 부분이 생략되며 기본값은 매질.

1.1.1 –pretty = oneline

'한 줄'로 예쁜 인쇄 커밋 로그
명령: git log --pretty = oneline
출력을 순서대로 형식화합니다.




Commit-Git 로그 형식 기록-Edureka

1.1.2 –pretty = short

커밋 출력 '짧은'형식을 다음 형식으로 지정합니다.
커밋 (refname)
저자:



1.1.3 –pretty = medium

명령: git log --pretty = medium
커밋 출력을 '중간'형식으로 인쇄합니다.
범하다
저자 :
데이트:


1.1.4 –pretty = full

명령: git log --pretty = full
출력 형식은 다음과 같습니다.
커밋 (refname)
저자:
범하다:


1.1.5 –pretty = fuller

명령: git log --pretty = fuller
커밋 (refname)
저자:
AuthorDate :
범하다:
CommitDate :


1.1.6 –pretty = email

명령: git log --pretty = email
이메일 스타일 형식으로 로그 출력을 인쇄합니다.
에서
에서:
데이트:
제목: [반점]


1.1.7 –pretty = raw

명령: git log --pretty = raw
원시 로그 출력 형식은 커밋 객체에 저장된 그대로 전체 커밋을 표시합니다.
범하다
나무
부모의
저자
범하다

1.1.8 –format : : 사용자 지정 서식

이 형식을 사용하면 커밋 출력 로그에 인쇄 할 커밋 개체의 정보를 지정할 수 있습니다.
이 옵션이 코드 스 니펫의 도움으로 'C printf'함수처럼 제공하는 다양한 자리 표시자를 고려해 보겠습니다.

명령: git log --pretty = format : '% h % ad | % s % d [% an] '--date = short
출력 형식:
| [저자 이름]

% h = 단축 된 해시 ID / sha1commit ID
% H = 긴 sha-1 ID
%에 = 작성 날짜
%에스 = 제목 제목 줄 커밋
%디 = 참조 포인터 (분기, 태그) 이름
% an = 저자 이름
-데이트 = short : 읽을 수있는 형식으로 날짜 만 인쇄하고 시간은 인쇄하지 않음

이제 색상을 사용하여이 출력을보다 인간 친화적으로 만드는 것은 어떻습니까?
명령:
git log --pretty = format : '% C (노란색) % h % Creset % ad | % Cgreen % s % Creset % Cred % d % Creset % Cblue [% an] '--date = short


위 코드 스 니펫에 사용 된 다른 자리 표시자는 다음과 같습니다.
% C (노란색) : 다음 문자열을 노란색으로 바꿉니다.
% Creset : 다음 문자열을 기본 (흰색) 색상으로 재설정합니다.
% Cgreen : 다음 문자열을 녹색으로 변경
나는 추측한다 : 다음 문자열을 빨간색으로 변경하십시오.
% Cblue : 작성자 이름을 파란색으로 지정

매번 전체 명령을 기억하고 작성할 필요는 없으며 짧은 이름을 다음과 같이 사용하십시오. 자식 별칭 아래 그림과 같이:
명령:
git config --global alias.c-hist 'log --pretty = format :'% C (yellow) % h % Creset % ad | % Cgreen % s % Creset % Cred % d % Creset % Cblue [% an] '--date = short'

'c-hist' 대표하다 ustomized- 히 스트 Ory
그래서, 당신이 관찰했을 것입니다. 자식 구성 값이있는 파일.

자바 스크립트를 사용하여 HTML의 진행률 표시 줄

이제 현재 분기의 기록을 확인하려면 다음과 같이 명령을 실행하기 만하면됩니다.
명령: 치열하다

1.2 –abbrev-commit : git commit hash-id 단축

명령: git log --abbrev-commit
전체 40 바이트 16 진 커미트 오브젝트 이름은 기본 7 바이트로 단축됩니다.


--한 줄'편리한보기를위한 옵션 :
명령: git log --abbrev-commit --oneline

더 흥미로운 점은 아래와 같이‘–abbrev =’옵션을 사용하여 sha-1 ID의 바이트 길이를 지정할 수도 있다는 것입니다.
명령: git log --abbrev-commit --abbrev = 5 --oneline



분명히 강조 표시된 sha-1 id는 5 바이트 크기로 축소됩니다.

1.3 – no-abbrev-commit

전체 40 바이트 16 진수 커밋 개체 이름을 표시합니다.
이것은 부정 –abbrev-commit 및 암시하는 옵션
'–oneline'과 같은 것입니다.
명령: git log --pretty = oneline --no-abbrev-commit



1.4 – 상대 날짜

명령: git log --relative-date

이 강조 표시된 시간은 시스템에서 명령을 실행하는 시간에 따라 변경 될 수 있습니다.

1.5 – 날짜 =

다음 형식 옵션 중 하나로 커밋 로그 날짜를 형식화 할 수도 있습니다.

1.5.1 –date = relative

명령 :git log --date = relative
이것은 위의 명령 'git log --relative-date”및 동일한 커밋을 인쇄합니다.

1.5.2 –date = local

명령 : git log --date = local

1.5.3 –date = iso

명령: git log --date = iso

1.5.4 –date = iso-strict

명령: git log --date = iso-strict

1.5.5 –date = rfc

명령: git log --date = rfc

1.5.6 –date = short

명령: git log --date = short

1.5.7 –date = raw (초 단위로 날짜 표시)

명령: git log --date = raw
시간을 초 단위로 인쇄하십시오. 유닉스 epoc 시간 (1970 년 1 월 1 일) 뒤에 시간대가 표시됩니다.

1.5.8 –date = human

명령: git log --date = human

1.5.9 –date = unix

날짜를 다음과 같이 표시합니다. 유닉스 epoc (UTC) 시간.
명령: git log --date = unix

1.6 – 부모

각 커밋의 부모도 다음 형식으로 인쇄합니다.
명령: git log-부모
Oneliner 출력 명령 : git log --parents --oneline

주목할 점 :
C366419 병합 커밋이므로 각각 부모가 2 개 있습니다. feeb30c 4920adc
마찬가지로

1d67b50 병합으로 인한 병합 커밋입니다. f2ff2e4 abb694b
078f9f5 병합하여 만든 병합 커밋입니다. 9a2412e ab3a5e5
이므로, 86792c6 초기 커밋이므로 부모가 없습니다.

1.7 – 어린이

양식으로 어린이도 인쇄하십시오.
명령: git log --children --oneline

노트 :
006b9ce는 최신 커밋이므로 아직 자식 커밋 개체가 없습니다. 이 분기에서 수행하고 커밋하는 다음 변경 사항은이 최신 sha-1 ID의 자식 커밋 개체가됩니다.

1.8 – 그래프

sha-1 ID 앞에 커밋 기록의 텍스트 기반 그래픽 표현을 그립니다.
명령: git log --graph
향상된 oneliner 출력 : git log --graph --oneline


이를 통해 언제, 어떻게, 왜 다른 브랜치가 현재 체크 아웃 된 브랜치에 병합되었는지 이해할 수 있습니다.

1.9 – show-linear-break

명령: git log --show-linear-break
이것은 선형 브랜치에 속하지 않는 2 개의 연속 된 커밋, 즉 다른 브랜치에서 온 커밋 사이의 장벽을 나타내는 유용한 명령입니다.


위의 출력을 'linear-break'커밋이 어떻게 병합되었는지 명확하게 보여주는 'git log –graph'명령 출력과 비교합니다.

보너스 : git 로그 출력 요약 :‘git shortlog’

git shortlog‘명령은 작성자의 현명한 커밋 로그를 분류하고 각 작성자의 커밋을 나타내는 개요 요약을 인쇄합니다.
명령: git log shortlog

명령 : git log shortlog -s
-s는 –summary를 나타내며, 커밋 설명을 억제하고 다음과 같이 각 작성자의 커밋 수를 인쇄합니다.

또한, '에서 설명한 것과 동일한 자리 표시자를 사용하여 출력 형식을 지정할 수도 있습니다.--pretty = 형식‘옵션
다음 명령을 시도하십시오. git shortlog --format = '% h | %에스'

따라서 총 커밋 수와 함께 각 작성자에 대한 ID와을 표시하므로이 출력이 더 합리적이라는 데 동의해야합니다.

노트 : 특정 커밋을 만든 브랜치를 매우 쉽게 찾을 수 있다는 점이 흥미 롭습니다. 다음 기사에서이 토론을 심도있게 다룰 가치가 있습니다.

그래서 우리는 이것으로 끝납니다Git 로그 형식 기록블로그, 유익한 정보를 얻으 셨기를 바랍니다.

이 게시물에서 우리는보다 사용자 정의되고 사용자 친화적 인 방식으로 프로젝트 정보를 인쇄하는 몇 가지 서식 지정 기술을 배웠습니다. 이제 커밋 된 기록에서 소스 코드에 대해 필요한 모든 정보를 추출하기 위해‘git log’명령의 매개 변수를 효과적으로 사용하는 방법을 알고 있어야합니다. 이것으로이 기사의 끝 부분에 이르렀습니다. 유익한 정보를 얻으 셨기를 바랍니다.

더 자세히 알고 싶으 시다면 여기를 확인하세요 전 세계에 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 Edureka DevOps 인증 교육 과정은 학습자가 DevOps가 무엇인지 이해하고 Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack 및 GIT와 같은 다양한 DevOps 프로세스 및 도구에 대한 전문 지식을 습득하여 SDLC의 여러 단계를 자동화하는 데 도움이됩니다.

질문이 있으십니까? 'Git 로그 형식 기록'에 대한이 기사의 댓글 섹션에 언급 해 주시면 다시 연락 드리겠습니다.