지점 이름 내에서 사용할 수 없는 문자는 무엇입니까?
지점 이름 내에서 사용할 수 없는 문자는 무엇입니까?
refname에 대한 이름 지정 규칙:
Git는 참조 이름을 지정하는 방법에 다음 규칙을 적용합니다.
슬래시를 포함할 수 있습니다.
/
계층적(디렉토리) 그룹화의 경우 슬래시로 구분된 구성요소는 점으로 시작할 수 없습니다..
또는 시퀀스로 끝납니다..lock
.하나 이상을 포함해야 합니다.
/
이는 다음과 같은 범주의 존재를 강제합니다.heads/
,tags/
등이 있지만 실제 이름은 제한되지 않습니다.만약에--allow-onelevel
옵션을 사용하면 이 규칙은 무시됩니다.두 개의 연속된 점을 가질 수 없습니다.
..
아무 곳이나.ASCII 제어 문자(즉, 값이 다음보다 낮은 바이트)를 사용할 수 없습니다.
\040
또는\177
DEL
), 공백, 타일드~
캐럿^
또는 대장:
아무 곳이나.물음표를 사용할 수 없습니다.
?
별표*
또는 개방형 브래킷[
아무 곳이나.참조--refspec-pattern
이 규칙에 대한 예외에 대한 아래 옵션.슬래시로 시작하거나 끝낼 수 없습니다.
/
또는 여러 개의 연속 슬래시를 포함합니다( 참조).--normalize
이 규칙에 대한 예외에 대한 아래 옵션)점으로 끝날 수 없습니다.
.
시퀀스를 포함할 수 없습니다.
@{
.단일 문자일 수 없습니다.
@
.다음을 포함할 수 없습니다.
\
.
또한 지점 이름에 대한 추가 규칙:
- 대시로 시작할 수 없습니다.
-
Jakub Naręski 덕분에, 남성 페이지:git check-ref-format
자세한 내용은 를 참조하십시오.
승인된 답변과 man 페이지에는 이미 Git 지점 이름에 적용되는 규칙이 설명되어 있습니다.
Git 소스 코드에서 refname_disposition 배열은 다음에서 다양한 문자를 처리하는 방법을 결정하는 데 사용됩니다.refnames
배열의 인덱스는 ASCII 코드에 해당하며 값은 ASCII 문자가 처리되는 방식을 나타냅니다.
/*
* How to handle various characters in refnames:
* 0: An acceptable character for refs
* 1: End-of-component
* 2: ., look for a preceding . to reject .. in refs
* 3: {, look for a preceding @ to reject @{ in refs
* 4: A bad character: ASCII control characters, and
* ":", "?", "[", "\", "^", "~", SP, or TAB
* 5: *, reject unless REFNAME_REFSPEC_PATTERN is set
*/
static unsigned char refname_disposition[256] = {
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 2, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 4,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 4, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 4, 4
};
부터4
해당 ASCII 문자가 분기 이름 내에서 허용되지 않음을 의미합니다. 허용되지 않는 문자는 39개입니다.허용되지 않는 문자는 ASCII 제어 문자(ASCII 코드 < 32), 인쇄 가능 문자입니다.: ? [ \ ^ ~
공백/탭 문자를 사용할 수 있습니다.
3자 이상의 문자가 몇 가지 조건을 충족해야 합니다(문서 설명 참조).
.
이후 두 개의 점은 금지됩니다.{
서브스트링@{
금지되어 있습니다.*
다음이 아니면 거부REFNAME_REFSPEC_PATTERN
설정됩니다.
null 바이트는 분기 이름을 종료하고/
분기에 대한 새 디렉터리 계층 구조를 만듭니다.따라서 분기 이름은 슬래시로 끝날 수 없습니다.예를들면git checkout -b 'a/b/c'
는 아에해디구만다듭니조를렉리터래당 아래에 를 생성합니다..git/refs/heads
:UTF-8
지점 이름에 문자를 사용할 수 있습니다.
$ git checkout -b $'\xCE\xA9'
Switched to a new branch 'Ω'
또한 달러 기호를 사용할 경우 주의해야 합니다.$
성격.
git branch pew$ign
를 생성합니다.pew
.
이 있는 $
전체 이름은 문자열 리터럴로 만드는 따옴표로 감싸야 합니다.git branch 'pew$ign'
이상적으로 기호는 사용하지 않는 것이 좋습니다.
Manoj Govindan의 주요 답변을 완성하기 위해:
@
version 유효이분다니버름전입기한ongit(버전다▁g▁is▁a니유on)).git version 2.24.3 (Apple Git-128)
)HEAD
유효한 지점 이름이 아닙니다(캡틴 명백!).- 길이가 제한됨(OS에 따라 Mac OS 10.15.7에서는 250자가 최대(ASCII 또는 비ASCII)입니다.)
> 또는 ==> 또는 ->를 좋아하지 않습니다.
언급URL : https://stackoverflow.com/questions/3651860/which-characters-are-illegal-within-a-branch-name
'programing' 카테고리의 다른 글
CSS를 통해 PNG 이미지의 색상을 변경하시겠습니까? (0) | 2023.05.03 |
---|---|
Eclipse에서 철자 검사를 영구적으로 해제 (0) | 2023.05.03 |
깃허브 같은 깃서버? (0) | 2023.05.03 |
내 이미지가 흐릿해요!WPF의 SnapToDevicePixels가 작동하지 않는 이유는 무엇입니까? (0) | 2023.04.28 |
PowerShell에서 사용자 입력 확인 (0) | 2023.04.28 |