source

Git 저장소에 있는 모든 태그를 생성된 날짜까지 나열하려면 어떻게 해야 합니까?

ittop 2023. 6. 26. 23:08
반응형

Git 저장소에 있는 모든 태그를 생성된 날짜까지 나열하려면 어떻게 해야 합니까?

시스템에 있는 모든 태그를 생성된 날짜까지 나열할 방법이 필요하지만 git-log를 통해 해당 데이터를 얻을 수 있을지 확신할 수 없습니다.아이디어?

태그 생성 날짜별 정렬은 주석이 달린 경량 태그와 함께 작동합니다.

git for-each-ref --sort=creatordate --format '%(refname) %(creatordate)' refs/tags

Git 2.8(2016년 3월)은 Git 1.4.4(2006년 10월)로 거슬러 올라가는 또 다른 옵션을 문서화합니다.
Eric Wong()ele828의 commit 914ef0(2016년 1월 5일)을 참조하십시오.
(주니오 C 하마노에 의해 합병 -- 108cb77, 2016년 1월 20일 커밋)

새로운 정보 보기

커밋 및 태그 개체의 경우 특수creatordate그리고.creator필드는 의 해당 날짜 또는 이름-이메일-날짜 튜플에 해당합니다.committer또는tagger개체 유형에 따라 필드가 달라집니다.
이러한 태그는 주석이 달린 태그와 경량 태그를 혼합하여 작업하기 위한 것입니다.

그래서 사용하기creatordate태그 작업:

git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname) %(*objectname) %(objectname)' refs/tags | \
sort -n | awk '{ print $4, $3; }' 

또는:

git tag --sort=-creatordate 

"rc-X 형식의 버전 문자열 순서에 따라 git 태그를 정렬하는 방법"에서 자세히 설명했습니다.Y.Z.W?""에 정렬 순서를 추가할 수 있습니다(2014년 6월 2.0 이후).

해당 정렬 순서에는 필드 이름( 에 나열됨) 태그 날짜가 포함됩니다.그것은 가능합니다.git tag --sort=taggerdate (아래 DarVar에 의해 언급됨)
예를 들어, 보고서에는 다음이 나열됩니다.v2.10.0마지막 태그:

v2.9.1
v2.9.2
v2.9.3
v2.10.0-rc0
v2.10.0-rc1
v2.10.0-rc2
v2.10.0

기본 순서는 다음과 같습니다.git tag):

v2.1.2
v2.1.3
v2.1.4
v2.10.0
v2.10.0-rc0
v2.10.0-rc1
v2.10.0-rc2
v2.2.0
git log --tags --simplify-by-decoration --pretty="format:%ci %d"

또한 (날짜 필드 없음)의 양호한 출력:

git log --tags --decorate --simplify-by-decoration --oneline

종속성 및 스트라이프 선형 커밋(태그 및 분기/합병과 같은 필수 이벤트만)을 포함한 전체 기록을 보려면:

git log --graph --decorate --simplify-by-decoration --oneline --all

이 한 줄기는 날짜와 태그를 표시합니다.

git tag --format='%(creatordate:short)%09%(refname:strip=2)'

출력:

2015-09-27      v0.1.0
2019-10-22      v0.10.0
2020-07-08      v0.12.0
2015-11-18      v0.2.0
2020-12-08      v1.0.0

태그는 기본적으로 사전순으로 정렬됩니다.날짜별로 정렬하려면 다음을 수행합니다.

git tag --format='%(creatordate:short)%09%(refname:strip=2)' --sort=creatordate

출력:

2015-09-27      v0.1.0
2015-11-18      v0.2.0
2019-10-22      v0.10.0
2020-07-08      v0.12.0
2020-12-08      v1.0.0

자세한 내용은 VonC 답변을 참조하십시오.

git tag --sort=-taggerdate

man 페이지에 따르면, "Prefix - 값의 내림차순으로 정렬합니다."

git tag 에서는 와 동일한 정렬 키를 사용합니다. 여기서 키가 문서화됩니다.

커밋 날짜를 기준으로 주석이 달린 태그와 경량 태그를 함께 정렬하려면 다음을 사용합니다.

git for-each-ref --format='%(*committerdate:raw)%(committerdate:raw) %(refname) %(*objectname) %(objectname)' refs/tags | \
  sort -n | awk '{ print $4, $3; }' 

이 명령은 모든 태그와 관련 커밋 개체 ID를 시간순으로 나열합니다.

깃과 함께version 2.10.0.windows.1

git tag --sort=taggerdate

다음은 커밋에 따라 다르므로 커밋과 함께 날짜 정보가 있는지 여부는 중요하지 않습니다.

git log --tags --decorate --simplify-by-decoration|grep ^commit|grep tag|sed -e 's/^.*: //' -e 's/)$//' -e 's/,.*$//'|tac

위의 Josh Lee의 답변은 주문을 정확하게 하기 위해 태그 날짜에 의존합니다.

나의 고: 내git --version이라git version 2.25.1.

-l의 줄이 (모든개태중태에그서그다있메니습 99행의이최대에필드)-n99), 최신 태그의 마지막 순서대로 다음을 수행합니다.

git tag -l -n99 --sort=taggerdate

(내가 선호하는 양식) 시간순서를 뒤집고 최신 태그를 먼저 붙이려면 마이너스 기호(- taggerdate다음과 같이:

git tag -l -n99 --sort=-taggerdate

더 나아가기:

하고 문자열이 my string에 그의이어에가딘름추, 가들가▁add를 추가합니다.'*my string*'위험하다는 하세요.*입니다.

git tag -l -n99 --sort=-taggerdate '*my string*'

태그 이름만 표시하고 최대 99줄의 태그 메시지는 표시하지 않으려면 다음을 제거합니다.-n99표시된 항목:

git tag -l --sort=-taggerdate '*my string*'

관련된

  1. Git 로그에 있는 모든 태그를 표시하는 방법에 대한 내 대답

앞서 언급한 방법을 기반으로, 저는 목록의 실제 태그 날짜도 보고 싶었습니다. 그래서 제가 사용 중인 버전은 다음과 같습니다.

git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(creatordate:short) %(refname) %(*objectname) %(objectname)' refs/tags | sort -n | awk '{ print $3, $5, $4 }'

언급URL : https://stackoverflow.com/questions/6269927/how-can-i-list-all-tags-in-my-git-repository-by-the-date-they-were-created

반응형