답변
“Object storage format” in Git User Manual을 살펴보십시오.
zlib을 사용하는 원시 압축 데이터입니다. 'zlib1g-dev'패키지의 zpipe
을 사용할 수 있습니다. the example을 gcc -o zpipe zpipe.c -lz
으로 컴파일하십시오. .gz
등의 표준이 아닙니다.
./zpipe -d < .git/objects/02/43019ddb4d94114e5a8580eec01baeea195133
인쇄 블롭의 내용 (헤더 + 데이터)는 SHA-1을 확인하려면, 당신이 파일 (myblob
)에 압축되지 않은 방울을 넣어해야 할
sha1sum myblob
아쉽게도 포장 된 객체 (이 객체는 저장소에 잠시 동안있다). –
개체 파일에 DEFLATE 페이로드 만 포함되어 있고 https://www.ietf.org/rfc/rfc1952.txt에 지정된 다른 메타 데이터 필드가 포함되어 있지 않으므로 'gunzip'이 작동하지 않는 이유입니다 ? –
일반 텍스트 형식의 커밋 또는 블롭 (파일 내용) 을없이 사용하고 싶다면 리포지토리가 압축 된 경우 특히 쉽지 않을 것입니다. git을 홈 디렉토리 (또는 Mac OS X의 해당 디렉토리)에 로컬로 설치할 수 있습니까?
에 대한 형식이 인 파일은 .git/objects/
팬 아웃 디렉토리에 저장됩니다. .git/objects/02/43019ddb4d94114e5a8580eec01baeea195133
(팬 아웃 디렉토리 및 파일 이름 형태로 객체의 SHA-1 식별자)의 "Pro Git"책 (무료로 온라인으로보실 수 있음)과 Chapter 7.1 "How Git Stores Objects" "Git Community Book"에 있습니다.
팩 형식입니다. 여기서 개체 집합은 .git/objects/pack/
의 단일 파일에 저장됩니다. .git/objects/pack/pack-1db7aa96d95149a4dd341490a3594181a24415ee.pack
는 Documentation/technical/pack-format.txt와 "힘내 커뮤니티 도서"의 Chapter 7.5 "The Packfile"에 설명 된 (그리고 "프로 힘내"의 Chapter 9.4 "Packfiles"에서 언급 한) 당신이 .git/HEAD
파일에 먼저 살펴 것은 찾을 커밋 최신을 찾으려면
한다 현재 가지. 그것은 다음과 같은 것을 포함됩니다 :
ref: refs/heads/master
(는 SHA-1을 포함하는 경우, 당신은 커밋 마지막의 ID로 가지고 가고, 단계를 건너 뛸 수 있습니다). 그런 다음 확인하십시오.
.git/refs/heads/master
을 입력하여 분기가 가리키는 위치를 찾으십시오. SHA-1 커밋을 포함합니다 (예 :
).
dbc1b1f71052c084a84b5c395e1cb4b5ae526fcb
가장 최근의 커밋은 아마도 느슨한 형식 일 것입니다. 이 예제에서는 .git/objects/db/c1b1f71052c084a84b5c395e1cb4b5ae526fcb
파일에 있습니다.
나는 다른 방식으로 질문을 해석 할 것입니다. 오브젝트 파일이 무엇인지 이해하고 싶다면 git을 사용하여 히스토리 로그를 탐색하거나 git checkout, diff 등을 사용하지 않고 git을 직접 볼 수 있습니다./04/
에서 04
하고 나머지 숫자 a42e
의 처음 네 문자를 결합하여 파일 .git/objects/04/a42e9a7282340ef0256eaa6d59254227b8b141
명령을 실행
git show 04a42e
를 들어
: 예를 들어.
> git show 04a42e
commit 04f7db976fa54c72fcc6350dd7d0aa06cb249df6
Author: Alex Brown <[email protected]>
Date: Fri Jan 8 11:02:21 2010 +0000
a text file
diff --git a/1.txt b/1.txt
new file mode 100644
index 0000000..04a42e9
--- /dev/null
+++ b/1.txt
@@ -0,0 +1,3 @@
+Woo
+# boo
+# choo
이 하나는은, 다른 물체가 인덱스 .git/index
하에 저장 등
이것은 * some * question : P에 대한 좋은 대답 인 것 같습니다. –
alias deflate="perl -MCompress::Zlib -e 'undef $/; print uncompress(<>)'"
deflate .git/objects/4b/3083256dedabd68e839d7717aa785424119990 | sha1sum
4b3083256dedabd68e839d7717aa785424119990 -
파일 모양, 나무, 커밋 될 수있다.
https://github.com/git/git/blob/master/Documentation/technical/index-format.txt에 지정된 이진 압축되지 않은 형식이므로 읽을 수있는 유일한 방법은 hd
같은 도구를 사용하는 것입니다.
index
파일에는 inode, 사용 권한 및 수정 시간을 포함하여 메타 데이터가있는 파일 목록이 들어 있습니다. 또한 내용으로 SHA-1이 포함되어 있습니다.이 내용은 객체로 저장되므로 git add
을 실행하면 새 객체가 만들어 질 수 있습니다.
형식 필드를 필드별로 확인하려면 git init init && cd init && echo a > a && git add a
, hd .git/index
과 같은 간단한 테스트 저장소를 만드는 것이 좋습니다.
다음과 같은 질문이 인덱스에 더 초점을 맞추고 What does the git index contain EXACTLY?
- 1. git - 지점을 보는 방법
- 2. 'onLocationChange'방법을 사용하지 않고 GPS 위치를 알아 보는 방법
- 3. MySQL - 색인을 사용하지 않음
- 4. 직렬화를 사용하지 않고 PHP의 캐시 객체
- 5. textmate와 함께 git diff를 보는 방법
- 6. 참조 또는 색인을 사용하지 않고 목록 안의 개체 참조
- 7. GITTON의 역사를 보는 방법
- 8. 제출을 사용하지 않고 POST하는 방법?
- 9. UIView를 업데이트하는 방법 기본 스레드를 사용하지 않고
- 10. CSS- 절대 위치 지정 및 Z- 색인을 사용하지 않으면 어떻게됩니까?
- 11. DB를 잠그지 않고 색인을 생성하십시오.
- 12. 두 리포지토리로 자식을 처리하는 방법
- 13. auto_increment id를 사용하지 않고 스핑크스
- 14. 공유 호스트에서 git 명령을 사용하지 않고 Capistrano를 배포 하시겠습니까?
- 15. 원격으로 개체를 압축하지 않고 git 풀다.
- 16. CAS를 사용하지 않고 스핀 록을 작성하는 방법
- 17. malloc을 사용하지 않고 포인터에 고정 크기 객체 할당
- 18. C에서 반복자를 사용하지 않고 목록에서 데이터를 가져 오는 방법 #
- 19. 미러 생성 객체를 전송하지 않고 Git 저장소
- 20. git : 변경 내용을 보는 방법 다음 푸시가 전송됩니다
- 21. Visual Studio를 사용하지 않고 Team Foundation Server에 저장된 파일을 찾아보고 보는 방법
- 22. Linq to Db4o 색인을 사용하지 않음
- 23. WHERE CONTAINS 절이있는보기에서 색인을 사용하지 않습니다.
- 24. 내 테이블에서 색인을 사용하지 않는 이유는 무엇입니까?
- 25. MySQL 데이터베이스에서 사용하지 않는 색인을 어떻게 식별합니까?
- 26. mysql이 내 색인을 사용하지 않는 이유는 무엇입니까?
- 27. will_paginate activerecord를 사용하지 않고
- 28. WSAIoctl을 사용하지 않고 AcceptEx
- 29. 외부 메모리를 사용하지 않고 자바에 객체 상태 저장
- 30. 프레임 워크를 사용하지 않고 객체 지향 Javascript를 작성하려면 어떻게해야합니까?
이 파일은 본질적으로 일반 텍스트 아니며, 등을 볼 수, 당신은 텍스트로 자신의 포맷을 변환하는 프로그램이 필요합니다. 힘내는 정확하게 그렇게하도록 설계된 구성 요소가있는 프로그램입니다. 나는 누군가가 다른 것을 쓴다면 매우 놀랄 것이다. – Cascabel
개체 (특히 개체를 커밋)는 일반 텍스트로 변환되지 않으므로? –
zlib (압축) 압축을 사용하여 적어도 * 압축되었습니다. –