git branch -r을 실행할 때 "origin/HEAD"가 표시되는 이유는 무엇입니까?
을 할 때git branch -r
왜 그것이 리스트에 있는지.origin/HEAD
예를 들어, GitHub에는 두 개의 지점이 있습니다. 마스터 기능과 멋진 기능입니다.내가 하면,git clone
내 새
$ git branch -r
origin/HEAD
origin/master
origin/awesome-feature
또는 순서가 무엇이든(알파?저는 무고한 리포크의 신원을 비밀로 하기 위해 이 예를 위조하고 있습니다.)그서뭐가는 입니까?HEAD
사업?그것이 마지막으로 한 사람이 한 것입니까?push
그들의 들의를 가지고 .HEAD
그들이 밀었을 때를 가리켰나요?은 항상 이었든 간에 push
에드?HEAD
이동...내가 왜 누군가의 것에 신경을 쓰나요?HEAD
다른 기계를 가리켰나요?
저는 단지 원격 추적 등에 대한 핸들을 얻고 있기 때문에, 이것은 하나의 지속적인 혼란입니다.감사합니다!
편집: 저는 전용 원격 저장소(GitHub과 같이 아무도 로그인하여 해당 코드를 작업하지 않고 풀 또는 푸시만 수행하는 GitHub 등)에는 기본적으로 작업 복사본이 없기 때문에 헤드가 없고 없어야 한다고 생각했습니다.그렇지 않아요?
@robinst가 맞습니다.
Git에서는 기본적으로 체크아웃할 분기(즉, 복제할 때)를 선택할 수 있습니다.기적으로본,origin/HEAD
그것을 가리킬 것입니다.
GitHub에서 GitHub 보고서의 관리 설정에서 이 설정을 변경할 수 있습니다.명령줄에서 다음을 통해 이 작업을 수행할 수도 있습니다.
git remote set-head origin trunk
또는 다음을 통해 모두 삭제합니다.
git remote set-head origin -d
예를 들면.'분기 전환' 드롭다운을 확인합니다. trunk
선택되어 있습니다.origin/HEAD
뒤르는에 trunk
.
맨 리포지토리에 HEAD가 있을 수 있는 이유는 리포지토리 복제 후 처음 체크아웃할 분기를 결정하기 때문입니다.
일반적으로 HEAD는 마스터를 가리키며, 이는 사용자가 리포지토리를 복제할 때 체크아웃되는 분기입니다.기본 리포지토리에서 HEAD를 편집하여 다른 분기로 설정하면 해당 분기가 클론에서 체크아웃됩니다.
저는 전용 원격 저장소(GitHub과 같이 아무도 로그인하여 해당 코드를 작업하지 않고 풀 또는 푸시만 수행하는 등)가 기본적으로 작동하는 복사본이 없기 때문에 헤드가 없어야 한다고 생각했습니다.그렇지 않아요?
저는 당신이 말한 것과 똑같은 인상을 받았습니다.
그리고 github에서 복제된 오리진/HEAD 원격 추적 분기를 삭제할 수도 없습니다.
git branch -d -r origin/HEAD
효과가 없었습니다.
누가 그 원산지/HEAD 원격 추적 지점을 삭제하는 방법을 알려줄 수 있습니까?
갱신하다
github에서 복제할 때 오리진/HEAD가 생성되는 이유를 찾지 못했지만 삭제할 방법을 찾았습니다.
새로운 버전의 git 제공
git remote set-head <name> -d
원격 추적 분기의 쓸모없는 HEAD 포인터를 삭제합니다.
또한 기본 이름 '오리진'을 사용하여 원하는 이름으로 변경할 수 있습니다.
git remote rename origin <new_name>
이것이 도움이 되길 바랍니다.:)
전용 원격 저장소로 이동하는 것이 '빈' 상태일 때, 즉 작업 디렉터리가 없을 때 훨씬 더 효과적이라는 것이 맞습니다.Git의 아키텍처는 패치에 의한 업데이트를 위해 설계되었습니다.pull
(fetch
). 이는 분산 VCS에서 의미가 있습니다.문서가 어딘가에서 말하고 있듯이 현재 체크아웃된 지점으로 푸시하면 "예상치 못한 결과"가 발생할 수 있습니다.
HEAD는 유효한 리포지토리에 대한 요구 사항의 일부입니다.Git Repository Layout은 부분적으로 다음과 같이 말합니다.
HEAD
A symref (see glossary) to the refs/heads/ namespace describing the currently active
branch. It does not mean much if the repository is not associated with any working tree
(i.e. a bare repository), but a valid git repository must have the HEAD file; some
porcelains may use it to guess the designated "default" branch of the repository
(usually master). It is legal if the named branch name does not (yet) exist.
따라서 HEAD는 지점 목록의 일부로 볼 수 있습니다. "별로 의미가 없다 하더라도...."
"origin"이 원격 리포지토리인 경우 origin/HEAD는 해당 원격 리포지토리의 기본 분기를 식별합니다.
예:
$ git remote show
origin
$ git remote show origin
* remote origin
Fetch URL: git@github.com:walkerh/pipe-o-matic.git
Push URL: git@github.com:walkerh/pipe-o-matic.git
HEAD branch: master
Remote branch:
master tracked
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (fast-forwardable)
"HEAD branch: master"라는 행을 메모합니다.여기서 원격 리포지토리는 클라이언트가 기본적으로 체크아웃할 분기를 알 수 있습니다.
원격 저장소에서 현재 체크아웃된 지점(마스터일 수도 있고 마스터가 아닐 수도 있음)을 가리키는 HEAD가 항상 있습니다.원격 리포지토리에도 현재 분기가 있습니다.보통 그것은 마스터이고, 저는 갑자기 그것을 바꾸고 싶어하는 이유를 생각할 수 없지만, 바꿀 수 있습니다.
누군가 나뭇가지를 밀어서 HEAD라고 부른 것 같습니다.
git push origin HEAD
언급URL : https://stackoverflow.com/questions/354312/why-is-origin-head-shown-when-running-git-branch-r
'programing' 카테고리의 다른 글
'에 의해 하나의 '문서'를 제거하는 방법MongoDB의 공식 C# 드라이버를 사용하는 ID? (0) | 2023.06.22 |
---|---|
스프링 부트 유닛 모듈이 자동 배선 구성 요소를 감지하지 못하는지 테스트하십시오. (0) | 2023.06.22 |
Oracle Floats 대 (0) | 2023.06.22 |
git merge: 다른 파일로 이동한 코드에 변경 사항 적용 (0) | 2023.06.22 |
속성에 대한 잠재적인 하위 요소 및 속성을 가진 사용자 지정 web.config 섹션을 어떻게 정의합니까? (0) | 2023.06.22 |