git: "branch 이름"과 "refs/heads/branch 이름"의 차이
예를 들어 설명하는 것이 가장 좋습니다.저는 저장소의 0.58 지점에 있습니다. 이것이 제가 끌어당기는 방법입니다.
git pull origin 0.58
"깃풀"이라고 부르면 다음과 같은 말이 나옵니다.
ip238:openlierox az$ git pull
You asked me to pull without telling me which branch you
want to merge with, and 'branch.0.58.merge' in
your configuration file does not tell me either. Please
name which branch you want to merge on the command line and
try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) for details on the refspec.
If you often merge with the same branch, you may want to
configure the following variables in your configuration
file:
branch.0.58.remote = <nickname>
branch.0.58.merge = <remote-ref>
remote.<nickname>.url = <url>
remote.<nickname>.fetch = <refspec>
See git-config(1) for details.
제가 그 지점을 체크아웃할 때 어떤 옵션(--track?)을 잊어버린 것 같습니다.어쨌든, 제가 지금 설정해 두었습니다.
git config branch.0.58.merge 0.58
git config branch.0.58.remote origin
그리고 이것은 효과가 있는 것 같습니다.그런 다음 관심 때문에 다음 설정에 대한 다른 지점을 살펴 보았습니다.
ip238:openlierox az$ git config branch.0.57.merge
refs/heads/0.57
ip238:openlierox az$ git config branch.0.57.remote
origin
'0.58'과 차이가 있나요, 아니면 'refs/heads/0.58'을 지정해야 하나요?
정확히 어떤 차이가 있습니까?
A ref
는 분기(헤드), 태그, 원격 분기 등 커밋을 가리키는 모든 것입니다.,콘,다에서 를 볼 수 ..git/refs
디렉터리, 저장소에 세 가지 유형의 참조를 모두 가지고 있다고 가정합니다.
refs/heads/0.58
0.58이라는 이름의 분기를 지정합니다.참조가 어떤 네임스페이스에 있는지 지정하지 않으면 git은 기본 네임스페이스를 찾습니다.이것은 0.58만 사용하는 것을 모호하게 만듭니다. 분지와 0.58이라는 이름의 태그를 모두 가질 수 있습니다.
궁금하신 분을 위해 Git v1.8.2.2부터 사용 가능한 - 은 로컬 저장소에 있는 모든 참조를 보여줍니다.
.branchName
GIT가 실제로 식별하기 전에 완전히 해결해야 합니다.다(으)가 됩니다.refs/heads/branchName
.
중 가 .git checkout branchName
체크아웃할 위치를 식별하기 위해 실제로 완전히 해결됩니다.이것은 자동으로 실행되므로 우리는 절대로 그것을 완전히 혼자 쓰지 않습니다.
어떻게 하는 거죠? 여기서 한 번 볼까요?
refname : 예:
master
,heads/master
,refs/heads/master
상징적인 이름.예를 들어 마스터는 일반적으로 다음과 같이 참조되는 커밋 개체를 의미합니다.
refs/heads/master
다 .heads/master
그리고.tags/master
, 당신은 분명히 말할 수 있습니다.heads/master
기트에게 당신이 말하는 것 중에 어떤 것을 말하는 것.는.<refname>
는 다음 첫을 제거합니다다.1.만약에
$GIT_DIR/<refname>
하는 바입니다(이는 함). 그것이 당신이 의미하는 것입니다. 이것은 일반적으로 다음에 대해서만 유용합니다.HEAD
,FETCH_HEAD
,ORIG_HEAD
,MERGE_HEAD
그리고.CHERRY_PICK_HEAD
);, 2. ,
refs/<refname>
존재하는 경우, 3. ,
refs/tags/<refname>
존재하는 경우4. ,
refs/heads/<refname>
존재하는 경우5. ,
refs/remotes/<refname>
존재하는 경우6. ,
refs/remotes/<refname>/HEAD
그것이 존재한다면.
이 6 가 branchName
. 따라서 완전히 해결된 branchName을(를) 지정할 필요가 없습니다.
또한, 당신의 것을..git
디렉토리와 내부를 봅니다.ref
폴더.
"지점명"이 해리라고 생각해보세요.
해리는 해당 분기의 최근 커밋을 가리킬 때 단순히 사용되는 포인터입니다.
반면에 심판/머리/해리는 해리 포인터를 사용하여 수행된 모든 활동을 추적하는 일종의 역사 추적기입니다.커밋, 다른 브랜치로 전환, 브랜치의 내용을 푸시하는 등의 모든 활동이 될 수 있습니다.
또 다른 차이점은 다음과 같습니다.
branchname
(라이크)--no-all
아니면--no-remote
)는 "invalid 유형"을 나타낼 수 있습니다.git branch --no-all
아니면git branch --no-remotes
합법적인 선택처럼 보이지만 그렇지 않습니다.그리고 나서 깃은 이를 "가지 이름"으로 해석합니다.refs/heads/branchname
존재하지 않는 옵션에 대해 즉시 유효하지 않은 것으로 표시됩니다(refs/heads/--no-all
아니면refs/heads/--no-remotes
: 말이 안됨)
Git 2.42(2023년 3분기)에서는 명령 줄 파서가 잘못된 옵션으로 거부합니다. "잘못된 분기 이름"이 아닙니다.
Junio C Hamano()gitster
의 commit e12cb98(2023년 7월 18일) 참조.
(주니오 C 하마노 ---- 2023년 7월 26일 커밋 9a5e3b5에 합병)
branch
branch
거절하다"--no-all
" 그리고"--no-remotes
" 이른 시간에
""
git branch --all
(man)의 명령줄 파서가 사용을 잊었기 때문에PARSE_OPT_NONEG,
그것은 ""를 받아들였습니다.git branch
(man)--no-all
, 그런 다음 기본 기계에 말도 안 되는 값을 전달하여 치명적인 오류를 초래했습니다."filter_refs: invalid type
".
더"--remotes
" 옵션이 정확히 같은 문제를 가지고 있었습니다.옵션 파서 초기에 지원되지 않는 옵션을 찾습니다.
오류 메시지는 다음과 같습니다.
unknown option --no-all
unknown option --no-remotes
) )filter_refs: invalid type
")
언급URL : https://stackoverflow.com/questions/1526471/git-difference-between-branchname-and-refs-heads-branchname
'source' 카테고리의 다른 글
PowerShell 배열에서 항목 [0] 제거 (0) | 2023.10.06 |
---|---|
'ERROR 2002 (HY000):소켓 '/var/run/mysqld/mysqld를 통해 로컬 MySQL 서버에 연결할 수 없습니다.sock' (2 "해당 파일 또는 디렉토리 없음")' (0) | 2023.10.06 |
SQL Server 2008 R2가 단일 사용자 모드로 고착됨 (0) | 2023.10.06 |
RecyclerView에 해당하는 Add HeaderView가 있습니까? (0) | 2023.10.06 |
AngularJS $http 응답 헤더 (0) | 2023.10.01 |