git에서 전체 태그와 함께 모든 태그를 나열하는 방법은 무엇입니까? tag -n5 이것은 태그 메시지의 처음 5 줄까지만

git이 전체 주석 또는 커밋 메시지와 함께 모든 태그를 나열하고 싶습니다. 이와 같은 것이 가깝습니다.

git tag -n5

이것은 태그 메시지의 처음 5 줄까지만 표시한다는 점을 제외하고는 내가 원하는 것을 정확하게 수행합니다.

나는 매우 큰 숫자를 사용할 수 있다고 생각합니다. 여기서 사용할 수있는 가장 큰 숫자는 무엇입니까? 모든 컴퓨터에서 동일합니까?

업데이트 : 나는 이것에 대해 생각할 시간이 많았으며, 지금은 각 메시지 중 일부가 너무 길면 반드시 모든 메시지를 보여주고 싶지는 않다고 생각합니다. 나는 (메시지 메시지를 포함하여 내가 쓰는 모든 것에 긴 바람을 피우는 내 자신의 성향을 제외하고) 방대한 메시지를보아야 할 특별한 필요성이 실제로 없었습니다. 나는 단지 그것이 나에게 정보를 숨기고있는 것처럼 느끼게했기 때문에 그것이 전체 메시지를 반드시 보여주지는 않을 것이라는 생각을 좋아하지 않았다. 그러나 너무 많은 정보는 나쁜 것일 수도 있습니다.



답변

이것을 시도하면 모든 태그에 대한 주석 및 9 줄의 메시지와 함께 모든 태그가 나열됩니다.

git tag -n9

또한 사용할 수 있습니다

git tag -l -n9

특정 태그가 나열되는 경우 :

git tag -l -n9 v3.*

(예 : 위 명령은 “v3″으로 시작하는 태그 만 표시합니다.)

-l, –list 주어진 패턴과 일치하는 이름을 가진 태그를 나열합니다 (또는 패턴이 제공되지 않은 경우 모두). 인수없이 “git tag”를 실행하면 모든 태그가 나열됩니다. 패턴은 쉘 와일드 카드입니다 (즉, fnmatch (3)을 사용하여 일치). 여러 패턴이 제공 될 수 있습니다. 둘 중 하나라도 일치하면 태그가 표시됩니다.


답변

git tag -n99

짧고 달다. 각 태그 주석 / 커밋 메시지에서 최대 99 개의 행을 나열합니다. 다음은 git tag 공식 문서에 대한 링크 입니다.

이제 태그 당 최대 99 줄만 표시하는 제한이 실제로 대부분 좋은 것으로 생각합니다. 단일 태그에 실제로 99 줄 이상이 있다면 나머지는 모두보고 싶지 않습니다. 줄을 하시겠습니까? 태그 당 99 개가 넘는 줄을 보려면 항상이 줄을 더 크게 늘릴 수 있습니다.

난 거대한 태그 메시지를보고 싶은 특정 상황이나 이유가 될 수도 있겠죠,하지만 점에서 의미 당신이 하지 전체 메시지를보고 싶어? 999 줄 이상일 때? 10,000? 1,000,000? 제 요점은 일반적으로 몇 줄을 볼 것인지에 대한 상한선을 갖는 것이 합리적이며이 숫자를 사용하면 설정할 수 있습니다.

태그를 볼 때 일반적으로보고 싶은 것에 대해 논쟁하고 있기 때문에 아마도 아래의 Iulian Onofrei의 의견에서 이와 같이 별명으로 설정하는 것이 좋습니다.

git config --global alias.tags 'tag -n99'

내 말은, 당신이 git tag -n99태그를보고 싶을 때마다 타이핑을 하고 싶지는 않습니까? 해당 별칭이 구성되면 태그를 볼 때마다 git tags터미널에 입력 하면됩니다. 개인적으로, 나는 이것보다 한 걸음 더 나아가서 내가 일반적으로 사용하는 모든 명령에 대해 더 축약 된 bash 별칭을 만드는 것을 선호합니다. 이를 위해 .bashrc 파일에 다음과 같은 것을 추가 할 수 있습니다 (Linux 및 유사한 환경에서 작동).

alias gtag='git tag -n99'

그런 다음 태그를 볼 때마다을 입력하면됩니다 gtag. 별칭 경로 (git aliases 또는 bash aliases 또는 기타)를 내려갈 때의 또 다른 이점은 이제 개인적으로 자신의 방식에 대한 추가 사용자 정의를 추가하고 일반적으로 태그를 표시하려는 경우가 있습니다 (정렬과 같은) 아래의 내 의견과 같은 특정 방식으로). 첫 번째 별칭을 만드는 데 따르는 어려움을 극복하고 나면 다음과 같은 사용자 정의 방식으로 작업하고 싶은 다른 작업을 위해 더 많은 별칭을 만드는 것이 얼마나 쉬운 지 알 수 git log있지만 다른 질문 / 응답을 위해 저장하십시오 .


답변

Mark Longair의 답변 (사용 git show)은 질문에서 원하는 것과 비슷합니다. 그러나 태그에 지정된 커밋과 해당 커밋에 대한 전체 패치도 포함됩니다. 커밋은 태그와 관련이 없을 수 있기 때문에 (태그가 캡처하려고하는 커밋은 하나뿐이므로) 이는 바람직하지 않습니다. 나는 다음이 조금 더 좋다고 믿는다.

for t in `git tag -l`; do git cat-file -p `git rev-parse $t`; done

답변

꽤 멀지는 않지만 다음과 같은 스크립트 또는 별칭을 만들 수 있습니다.

for c in $(git for-each-ref refs/tags/ --format='%(refname)'); do echo $c; git show --quiet "$c"; echo; done

답변

마지막 태그 메시지 만 :

git cat-file -p $(git rev-parse $(git tag -l | tail -n1)) | tail -n +6

답변

–format 옵션 사용

git tag -l --format='%(tag) %(subject)'

답변

커맨드 라인에서이 작업을 선호하지만 웹 인터페이스가 마음에 들지 않고 GitHub를 사용 https://github.com/user/repo/tags하는 경우 각 태그 옆에있는 “…”를 방문 하여 주석을 표시 할 수 있습니다.