마지막 태그 이후 모든 Git 커밋 가져오기
커밋에 태그를 지정할 때 마지막으로 태그가 지정된 커밋 이후 변경된 내용을 알아야 합니다.예:
a87a6sdf87a6d4 Some new feature
a87a6sdf87a6d3 Some bug fix
a87a6sdf87a6d2 Some comments added
a87a6sdf87a6d1 Some merge <- v1.4.0
이 예에서 저는 두 개의 커밋이 있는 경우 둘 다 커밋을 보여주는 세 개의 최신 커밋에 대해 알고 싶거나 위와 같은 로그를 인쇄할 수 있습니다.새로운 기능이 추가된 것을 확인하면 v1.5.0에 태그를 지정합니다.
이걸 어떻게 처리합니까?이렇게 태그를 사용해야 하나요?태그 메시지에 무엇을 적어야 합니까?항상 비워 둡니다.git tag -a v1.2.3 -m ''
git log <yourlasttag>..HEAD
예와 같이 커밋 ID + 메시지가 있는 한 줄에서 원하는 경우
git log <yourlasttag>..HEAD --oneline
그리고 최신 태그를 모르거나 동적으로 만들고 싶은 경우에는 창에서 할 수 있습니다.
for /f "delims=" %a in ('git describe --tags --abbrev^=0') do @set latesttag=%a
git log %latesttag%..HEAD --oneline
리눅스 / gitbash / windows bash에서
git log $(git describe --tags --abbrev=0)..HEAD --oneline
또한 기록에 있는 태그를 알고 있으며 해당 태그에서 현재 상황에 이르기까지 모든 태그를 인쇄하려는 경우 추가할 수 있습니다.--decorate
그래서 중간에 있는 태그를 출력할 수 있습니다.
현재 커밋이 태그이기도 하고 최신 태그나 이전 태그 이름을 몰라도 이전 태그 이후의 변경 사항을 동적으로 가져오려면 다음 작업을 수행할 수 있습니다.
git log --oneline $(git describe --tags --abbrev=0 @^)..@
참고:@
의 줄임말HEAD
.
sed와 커밋 병합을 쉽게 생략할 수 있습니다.
git log $(git describe --tags --abbrev=0)..@ --oneline | sed '/Merge/d'
이 답변에 추가로 병합 커밋을 생략하려면 다음을 사용할 수 있습니다.
git log <tag>..HEAD --oneline --no-merges
이 다른 회답에서 언급한 바와 같이
언급URL : https://stackoverflow.com/questions/12082981/get-all-git-commits-since-last-tag
'programing' 카테고리의 다른 글
실제 숫자인 문자열 값을 기준으로 Mongo 정렬 (0) | 2023.07.10 |
---|---|
'시스템'입니다.웹. 보안.SqlMembershipProvider'에는 스키마 버전 '1'과(와) 호환되는 데이터베이스 스키마가 필요합니다. (0) | 2023.07.10 |
장고에서 사용자가 특정 그룹에 있는지 확인하려면 어떻게 해야 합니까? (0) | 2023.07.10 |
혼합된 분기의 차이점을 보시겠습니까? (0) | 2023.07.10 |
SQL Server 특정 열의 모든 행에서 특정 단어 찾기 및 바꾸기 (0) | 2023.07.10 |