초기 커밋을 어떻게 참조합니까?
저장소의 초기 커밋을 참조해야 하는 스크립트가 있습니다. git에는 특별한 참조가 있습니다.HEAD
, 하지만 그에 상응하는 것은 없습니다.TAIL
. 나는 아무것도 찾을 수 없습니다.git help rev-parse
도움이 될 것 같네요
제가 하고 싶은 일은 다음과 같습니다.
git show TAIL
여기 제게 한 가지 옵션이 있습니다.
git show `git log --reverse | if read a commit ; then echo $commit ; fi`
그것은 꽤 해킹적이고 git log의 출력이 변하지 않는 것에 달려있습니다.
지금은 초기 커밋에 태그를 달고 그것을 나의 refspec으로 사용합니다.하지만 일반적인 툴을 출시하고 싶어서 좋은 옵션은 아닙니다.
스크립팅에 git-log를 사용하지 마십시오. 또는 지정된 사용자 지정 형식(--format=*<sth>*
옵션).
질문에 추가적인 문제가 있습니다. 저장소에 이러한 TAIL 루트 커밋(부모 없는 커밋)이 둘 이상 존재할 수 있습니다(git.git 저장소의 'html', 'man' 및 'todo'와 같은 연결되지 않은 분기를 할인하더라도).이는 일반적으로 별도의 프로젝트를 하나에 결합하거나 별도로 개발된 하위 프로젝트의 하위 트리 병합을 사용하여 발생합니다.
예를 들어 git 저장소에는 git-gui, gitk(서브트리 병합), gitweb(병합되어 더 이상 별도로 개발되지 않음), git 메일 도구(프로젝트 역사상 매우 초기에 병합됨), p4-fast-export(어쩌면 우발적일 수 있음)의 6가지 루트 커밋이 있습니다.즉, 'html' 및 'man' 브랜치의 루트, 사전 생성된 문서를 포함하는 '편의성' 브랜치, TODO 목록 및 스크립트를 포함하는 'todo' 브랜치의 루트를 세지 않는 것입니다.
만약 당신이 git 1.7.4.2 혹은 더 새로운 것을 가지고 있다면, 당신은 사용할 수 있습니다.--max-parents
옵션:
$ git rev-list --max-parents=0 HEAD
그렇지 않으면 다음을 사용하여 현재 분기에서 액세스할 수 있는 모든 부모 없는(루트) 커밋 목록을 가져올 수 있습니다.
$ git rev-list --parents HEAD | egrep "^[a-f0-9]{40}$"
git rev-list HEAD | tail -n 1
더 안정적인 선택입니다.
여기서 뭘 하려는 건지는 모르겠지만 일부 git 명령어는--root
예를 들어 커밋 트리의 루트를 참조하기 위해 옵션으로 사용할 수 있습니다.
git rebase --interactive --root main
병합의 첫 번째 부모를 주요 개발 라인이라고 가정하면 다음과 같습니다.
git rev-list --reverse --topo-order --first-parent HEAD | sed 1q
여러 개의 초기(orphan)가 있을 수 있지만, 이러한 커밋은 사용할 수 있는 참조에서 여전히 도달할 수 있습니다.
git rev-list --all --max-parents=0
아니면
git rev-list --reflog --max-parents=0
하지만 도달할 수 없는 커밋을 포함한 루트 커밋을 찾아야 한다면,git fsck
사용 가능:
git fsck --root --no-dangling
그--no-dangling
option은 dangling commit에 대한 경고 메시지를 억제하여 스크립트에서 출력을 더 쉽게 처리할 수 있도록 합니다.
저장소에 대한 첫 번째 커밋을 얻으려면 다음 명령을 실행합니다.
git rev-list --oneline HEAD | tail -n 1
언급URL : https://stackoverflow.com/questions/1006775/how-to-reference-the-initial-commit
'programing' 카테고리의 다른 글
워드프레스/우커머스 훅이 불이 붙지 않습니까? (0) | 2023.09.23 |
---|---|
인사이드 div 클릭을 비활성화하는 방법 (0) | 2023.09.23 |
OR 연산자가 있는 AngularJsng급 다중 조건 (0) | 2023.09.18 |
자바스크립트로 업로드 전 이미지 너비 및 높이 확인 (0) | 2023.09.18 |
C - 정수가 할당되었는지 확인 (0) | 2023.09.18 |