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*'
관련된
앞서 언급한 방법을 기반으로, 저는 목록의 실제 태그 날짜도 보고 싶었습니다. 그래서 제가 사용 중인 버전은 다음과 같습니다.
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
'source' 카테고리의 다른 글
스크립트 유형, 개체 유형 병합? (0) | 2023.06.26 |
---|---|
세션을 종료하지 않고 오라클에서 단일 쿼리를 종료할 수 있습니까? (0) | 2023.06.26 |
Ruby, exec, 시스템 및 %x() 또는 Backticks 간의 차이 (0) | 2023.06.26 |
안드로이드 앱의 이름을 변경하는 방법은 무엇입니까? (0) | 2023.06.01 |
WPF에서 파일 선택 대화 상자는 어디에 있습니까? (0) | 2023.06.01 |