카테고리 보관물: Git

Git

Git 리포지토리의 모든 태그를 생성 날짜별로 어떻게 나열합니까? 통해 해당 데이터를 가져올

시스템의 모든 태그를 생성 날짜별로 나열하는 방법이 필요하지만 git-log를 통해 해당 데이터를 가져올 수 있는지 확실하지 않습니다. 아이디어?



답변

태그 생성 날짜를 기준으로 정렬하면 주석이 달린 가벼운 태그에서 작동합니다.

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


답변

Git 2.8 (2016 년 3 월) 은 git 1.4.4 (Oct2006)로 거슬러 올라가는 또 다른 옵션을 설명 합니다. Eric Wong ( )의 commit e914ef0 (2016 년 1 월 5 일)을
참조하십시오 . ( Junio ​​C Hamano의해 병합 커밋 108cb77 , 2016 년 1 월 20 일)ele828
gitster

새로운 것을보십시오 Documentation/git-for-each-ref.txt

커밋 및 태그 객체의 경우 특수 creatordatecreator
필드는 객체 유형에 따라 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-XYZW 형식의 버전 문자열 순서로 git 태그를 정렬하는 방법? “에서 자세히 설명했듯이git tag (Git 2.0 2014 년 6 월부터) 정렬 순서를 추가 할 수 있습니다 .

이 정렬 순서에는 필드 이름 (으로 나열 됨 git for-each-ref)으로 taggerdate가 포함 됩니다. 즉, 허용 git tag --sort=taggerdate(언급 DarVar 이하 )
에서, 예를 들어 git/gitREPO 가 나열한다 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 --sort=-taggerdate

매뉴얼 페이지에 따르면 “접두사-값의 내림차순으로 정렬합니다.”

git taggit-for-each-ref키가 문서화 되어있는와 동일한 정렬 키를 사용합니다 .


답변

이 단일 라이너는 소란없이 날짜와 태그를 표시합니다.

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

산출:

2015-04-01  storaged-2.0.0
2015-06-11  storaged-2.1.0
2015-08-06  storaged-2.1.1
...

기본적으로 태그를 정렬하는 방법이 마음에 들지 않으면 --sort=creatordate예를 들어 옵션을 사용하여 날짜별로 정렬 할 수 있습니다 . 자세한 내용은 VonC 답변 을 참조하십시오.


답변

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

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