programing

git branch -r을 실행할 때 "origin/HEAD"가 표시되는 이유는 무엇입니까?

topblog 2023. 6. 22. 21:24
반응형

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

반응형