[
문자가 포함 된 태그를 만드는 동안 오류 메시지가 나타납니다 .
치명적 : '['은 유효한 태그 이름이 아닙니다.
질문 : git에 태그에 대한 규칙이 있습니까?
답변:
이름이 유효한지 확인할 수 있습니다.
git check-ref-format
이 페이지 는 유효한 이름에 대한 제약을 포함합니다. 페이지에서 인용 (향후 구식 일 수 있음) :
/
계층 적 (디렉토리) 그룹화를 위해 슬래시 를 포함 할 수 있지만 슬래시로 구분 된 구성 요소는 점으로 시작.
하거나 시퀀스로 끝날 수 없습니다.lock
.하나 이상의
/
. 이 같은 범주의 존재 시행heads/
,tags/
등을하지만, 실제 이름이 제한되지 않습니다. 경우--allow-onelevel
옵션을 사용,이 규칙은 면제됩니다.
..
어디에도 두 개의 연속 된 점이있을 수 없습니다 .ASCII 제어 문자 (즉, 값이 \ 040 또는 \ 177보다 낮은 바이트
DEL
), 공백, 물결표~
, 캐럿^
또는 콜론은:
어디에도있을 수 없습니다.물음표
?
, 별표*
또는 여는 괄호는[
어디에도 사용할 수 없습니다 .--refspec-pattern
이 규칙에 대한 예외는 아래 옵션을 참조하십시오 .슬래시로 시작하거나 끝나
/
거나 여러 개의 연속 된 슬래시를 포함 할 수 없습니다 (--normalize
이 규칙에 대한 예외는 아래 옵션 참조).점으로 끝날 수 없습니다
.
.시퀀스를 포함 할 수 없습니다
@{
.단일 문자가 될 수 없습니다
@
.그들은을 포함 할 수 없습니다
\
.
보시다시피 귀하의 경우 규칙 (5)을 위반했습니다.
--normalize
플래그를 사용하여 슬래시와 관련하여 태그를 정규화 할 수 있습니다 (연속 슬래시 및 선행 슬래시 제거).
git check-ref-format --normalize "tags/weird//tag"
tags/
일부 종은 당신이 검증됩니다 tag
.
@NikosAlexandris와 약간의 토론을 마친 후 다음 한 줄을 작성하여 <some-tag>
텍스트 피드백으로 태그를 확인할 수 있습니다 .
git check-ref-format "tags/<some-tag>" && echo "Valid tag" || echo "Invalid tag"
remote/branch
, 또는 HEAD^1
(머리의 마지막 커밋을 얻기 위해) 등을 참조 할 수 있기 때문입니다 . 결국 태그는 커밋의 "특별한 이름"일뿐입니다. 따라서 태그, 원격 분기, 상대 경로 등간에 참조를 모호하게 만들기 위해 이름이 제한됩니다. 예를 들어 Windows에서는 ..
경로에 ../foo
심각한 문제가있을 수 있으므로 파일 이름을 지정할 수 없습니다 . Unix는 일반적으로 이스케이프를 사용하여이 문제를 해결하지만 여기서는 "태그 공간", "분기 공간", "상대적 커밋 공간"이 "병합"됩니다.
v1.4
버전 2.21.0에서 허용되는 유효한 태그입니다. Git Basics-Tagging을 참조하십시오 .
refs/tags/v1.4
git이 refs/tags/
.