HEAD 및 ORIG_HEAD in Git
이 기호들은 무엇을 의미하고 무엇을 의미합니까?
(공식 문서에서 설명을 찾을 수 없습니다.)
HEAD
현재 커밋에 대한 (직접 또는 간접, 즉 기호) 참조입니다.이것은 작업 디렉토리에서 확인한 커밋이며(일부 변경 또는 동등한 내용을 변경하지 않은 경우), "git commit"이 새로 작성하는 위에 있는 커밋입니다. 통보.HEAD
다른 명명된 분기에 대한 기호 참조입니다. 이 분기는 현재 체크아웃된 분기 또는 현재 분기입니다. HEAD
또한 커밋을 직접 가리킬 수 있습니다. 이 상태를 "분리 HEAD"라고 하며, 이름 없는 익명 분기에 있는 것으로 이해할 수 있습니다.
그리고 단 하나의 지름길은HEAD
1.8.5Git 이후 ㅠㅠ
ORIG_HEAD
의 이전 상태입니다.HEAD
위험한 동작을 할 수 있는 명령에 의해 설정되므로 쉽게 되돌릴 수 있습니다.이 reflog를 있기 때문에 덜 합니다: 이제 Git에 reflog 있으므로떨어다집니이성용유.HEAD@{1}
와 거의 동등합니다.ORIG_HEAD
(HEAD@{1}
항상 값막입다의 값입니다.HEAD
,ORIG_HEAD
는 의마막값다니의 입니다.HEAD
위험한 작업 전).
자세한 내용은 git(1) manpage / [gitrevisions(7) manpage][git-revisions], Git 사용자 설명서, Git 커뮤니티 북 및 Git 용어집을 읽으십시오.
ORIG_HEAD
From git 재설정
"filename" 또는 "filename"은 항상 현재 분기의 원래 팁을 에 남깁니다.
git reset --hard ORIG_HEAD
강하게 재설정하면 인덱스 파일과 작업 트리가 해당 상태로 돌아가고 분기 팁이 해당 커밋으로 재설정됩니다.
git reset --merge ORIG_HEAD
병합 결과를 검사한 후 다른 분기의 변경 내용이 만족스럽지 않을 수 있습니다. 행중실" 실행
git reset --hard ORIG_HEAD
사용자가 원래 위치로 돌아갈 수는 있지만 사용자가 원하지 않는 로컬 변경사항은 삭제됩니다."git reset --merge
로컬 변경사항을 유지합니다.
패치가 적용되기 전에 ORIG_HEAD가 현재 분기의 끝으로 설정됩니다.
은 '기능를은 ' 행하는등여커다이유문니용합있경우는제가밋러에실▁'이다▁commits,▁this▁running▁with니▁is▁like유▁you▁multiple합▁have'를 실행하는 등 여러 커밋에 문제가 있을 때 유용합니다.git am
잘못된 분기에서 또는 우편함을 변경하여 더 쉽게 수정할 수 있는 커밋의 오류(예: "시작:" 행의 + 오류).'한항상집병합합또병 '를 설정합니다.
.git/ORIG_HEAD
을 제거하기 '''를 사용하여 HEAD의 원래 로 변경합니다.git reset ORIG_HEAD
'.
2 Git 2.40 (Q1223) 문ORIG_HEAD
조금 더:
commit f1c9243, commit c6eec9c, commit 0c514d5, commit 03c773, commit e29678b(2023년 1월 10일) 참조.phil-blain
(주니오 C 하마노에 의해 합병 -- -- 커밋 9c2003a, 2023년 1월 21일)
'에 대한 참고 사항
git-rebase.txt
추가ORIG_HEAD
에릭 세르빈 에딘
사인 오프 바이: 필립 블레인
아큐드바이: 필립 우드
'
ORIG_HEAD
보강 철근의 시작 부분에 기록되지만 보강 철근의 끝 부분에 있는 원래 가지 팁을 가리키도록 보장되지는 않습니다.실제로, '라고 쓰는 다른 명령어를 사용합니다.
ORIG_HEAD
"HEAD^"를git reset
(man)사용하여 커밋을 분할하는 것과 같이 기본 재배치 중에 '로 이어질 것입니다.ORIG_HEAD
덧쓰기
이로 인해 일부 사용자에게 혼란이 발생합니다.'설명' 섹션에 이에 대한 참고 사항을 추가하고 지점의 리필로그를 사용하는 보다 강력한 대안을 언급합니다.
git rebase
이제 관리 페이지에 다음 항목이 포함됩니다.
[NOTE]
:
ORIG_HEAD
참조를 쓰는 다른 (이: ) 강있는전분 에기끝근팁철계을지록되도장가속키리사조▁)▁other▁is▁that▁tip▁commands▁at다e▁if▁guarant▁point예▁not▁to)이 경우, 에서는 이전 분기 팁을 .git reset
는 기본 는 기본 재배치 중에 사용됩니다.
이전 팁은 수 있습니다( 그나이분를즉전팁현은분재기의사용다수있액하세니습할스여기러log즉를,@{1}
).
그리고:
'라고 쓰는 명령에 대해
revisions.txt
명시적임ORIG_HEAD
'사인 오프 바이: 필립 블레인
아큐드바이: 필립 우드
에 대해 언급할 때
ORIG_HEAD
어떤 명령이 의사 참조를 쓰는지 명시적으로 설명합니다. 즉,git am
(man) ',git merge
(man) ',git rebase
(man) ', ',git reset
(man) '.
revisions
이제 관리 페이지에 다음 항목이 포함됩니다.
ORIG_HEAD
는 이하는명의생성다니됩을 이동하는 됩니다.HEAD
극단적인 방법으로 (git am
,git merge
,git rebase
,git reset
), 의HEAD
분기의 끝을 실행하기 전 상태로 쉽게 변경할 수 있도록 하기 위해 분기를 실행하기 전 상태로 쉽게 변경할 수 있습니다.
HEAD
참고: 여기서
HEAD는 이동 포인터입니다.어떤 때는 현재 지점을 의미하지만, 어떤 때는 그렇지 않습니다.
따라서 HEAD는 이미 모든 곳에서 "현재 분기"의 동의어가 아닙니다.
HEAD는 모든 위치에서 "전류"를 의미하지만 반드시 "전류 분기"(즉, 분리된 HEAD)를 의미하지는 않습니다.
그러나 거의 항상 "현재 커밋"을 의미합니다.
그것은 약속입니다.git commit
다음을 기반으로 구축됩니다.git diff --cached
그리고 "git status
…과 비교하여 보다
이것은 매우 제한된 컨텍스트에서만 현재 분기를 의미합니다(정확하게는 분기 이름이 작동하기를 원할 때 --- 커밋/리베이스 등을 통해 분기 팁을 재설정하고 증가시킵니다).Reflog는 시간과 시간 기계가 "전류" 개념과 흥미로운 상호 작용을 하는 과거로 돌아갈 수 있는 수단입니다.
HEAD@{5.minutes.ago}
"HEAD 전에 의 팁이 에 있었는지 을 의미할 수 .HEAD symref를 참조 취소하여 현재 어떤 분기에 있는지 확인한 다음 5분 전에 해당 분기의 팁이 어디에 있었는지 확인"을 의미할 수 있습니다.
또는 "예를 들어 5분 전에 "헤드 표시"를 했다면 HEAD라고 불렀을 커밋이 무엇인지"를 의미할 수 있습니다.
git1.8.4 (2013년 7월)는 새로운 표기법을 도입했습니다!
(실제로는 2013년 4분기 1.8.5에 대한 것입니다: commit 9ba89f4로 재도입되었습니다), Felipe Contreras에 의해 작성되었습니다.
" 문자개 4를입력 하대는신대 "를
HEAD
"라고 말할 수 있습니다.@
얘들아
"context:"git log @
".
commit cdfd948 참조
하기 입력하기
HEAD
' 히우리를는가 ' 수있때을할지 ' 루합니다 '를 사용할수 .@
대신에한 이유
@
그것은 그것이 자연스럽게 따른다는 것입니다.ref@op
구문):HEAD@{u}
단, 도 없고, 것들이 는 ', 단, 우, 리, 것, 라, 우, 가, 리, 고, 정, 하, 는, 가, 당, 타, 합, 이, 것, 니, 다, 그, 들, 때, 없, 이, 을, 는, 참, 없, 며, 조, 및, 으, 동, 작, 이, ▁', ▁),, ,, 라, ,, 단,HEAD
'.이제 사용할 수 있습니다.
git show @~1
그리고 그 모든 좋은 선함.지금까지'지지
@
유효한 이름이었지만, 이 아이디어와 상충되므로 무효로 합시다.아마도 극소수의 사람들만이 이 이름을 사용했을 것입니다.
시작:
HEAD는 사용자가 작업 트리에서 변경한 내용을 기반으로 한 커밋의 이름을 지정합니다.FETCH_HEAD는 원격 저장소에서 가져온 분기를 마지막 GitFetch 호출과 함께 기록합니다.ORIG_HEAD는 HEAD를 급격하게 이동하는 명령어로 작성되어 작동 전 HEAD의 위치를 기록하므로 분기의 팁을 실행 전 상태로 쉽게 변경할 수 있습니다.MERGE_HEAD는 git merge를 실행할 때 분기에 병합하는 커밋을 기록합니다.CHRERY_PICK_HEAD는 깃체리픽을 실행할 때 체리픽을 실행하는 커밋을 기록합니다.
HEAD가 현재 분기를 가리키는 반면 ORIG_HEAD는 "위험한" 작업을 수행하기 전에 이전 HEAD를 저장하는 데 사용되는 것으로 알고 있습니다.
예를 들어 git-rebase 및 git-am은 변경 사항을 적용하기 전에 분기의 원래 팁을 기록합니다.
언급URL : https://stackoverflow.com/questions/964876/head-and-orig-head-in-git
'programing' 카테고리의 다른 글
Linkq 다른 개체에 특정 속성을 선택하시겠습니까? (0) | 2023.05.12 |
---|---|
Xcode 호출자 찾기 기능 (0) | 2023.05.12 |
VB에 폴더가 없는 경우 폴더를 만들려면 어떻게 해야 합니까? (0) | 2023.05.12 |
사용자 지정 개체가 포함된 NSMutableArray를 정렬하려면 어떻게 해야 합니까? (0) | 2023.05.12 |
Xcode Debugger: 변수 값 보기 (0) | 2023.05.12 |