지점 이름 내에서 어떤 문자가 유효하지 않습니까?


답변:


299

refname의 이름 지정 규칙 :

Git은 참조의 이름을 지정하는 방법에 대해 다음 규칙을 부과합니다.

  1. /계층 (디렉토리) 그룹화를위한 슬래시 를 포함 할 수 있지만 슬래시로 분리 된 구성 요소는 점으로 시작 .하거나 sequence로 끝날 수 없습니다 .lock.

  2. 하나 이상을 포함해야합니다 /. 이렇게 heads/하면 tags/등 의 카테고리가 존재 하지만 실제 이름은 제한되지 않습니다. 이 --allow-onelevel옵션을 사용하면이 규칙이 면제됩니다.

  3. ..곳의 연속 된 점을 가질 수 없습니다 .

  4. ASCII 제어 문자 (즉, 값이 \040, 또는 \177 DEL) 보다 작은 바이트 , 공백, 틸트 ~, 캐럿 ^또는 콜론을 :사용할 수 없습니다.

  5. 물음표 ?, 별표 *또는 열린 괄호는 [어디에서나 가질 수 없습니다 . --refspec-pattern이 규칙에 대한 예외는 아래 옵션을 참조하십시오 .

  6. 슬래시로 시작하거나 끝나 /거나 여러 개의 연속 슬래시를 포함 할 수 없습니다 ( --normalize이 규칙에 대한 예외는 아래 옵션 참조).

  7. 그들은 점으로 끝날 수 없습니다 ..

  8. 시퀀스를 포함 할 수 없습니다 @{.

  9. 단일 문자가 될 수 없습니다 @.

  10. 을 (를) 포함 할 수 없습니다 \.

그 외에도 지점 이름에 대한 추가 규칙 :

  1. 대시로 시작할 수 없습니다 -

덕분에 야쿱 Narębski맨 페이지 에 대한은 git check-ref-format자세한 내용이 있습니다.


9
'>'는 언급 할 가치가 있지만 bash에서 해당 분기로 전환하려면 앞에 '\'로 이스케이프해야합니다.
igniteflow

3
링크 한 맨 페이지 에서 규칙 # 2에 대해 혼란스러워 합니다. 그것은 말한다 "그들은 적어도 하나의 메시지 있어야합니다 (2) /." 설명 해주십시오? 내 지점 중 어느 것도 /이름이 없습니다.
chharvey

7
@chharvey :가없는“분기” /heads/“자동으로”추가되었습니다. 실제로 : /이 없으면 분기 또는 태그 또는 다른 항목인지 아직 확실하지 않습니다.
Robert Siemer

1
@DMTintner : 쉼표가 허용됩니다.
Robert Siemer

3
/^[\./]|\.\.|@{|[\/\.]$|^@$|[~^:\x00-\x20\x7F\s?*에 대한 정규식은 다음과 같습니다. [\\] / g 유효하지 않은 문자를 찾아서 '-'또는 원하는 문자로 대체 할 수 있습니다.
Tony Brix
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.