Giit 명령 입문: Giit 객체(update-ref, TAG) 제57회
지난번에 경량판 라벨을 만들었기 때문에 이번에는 주석이 달린 라벨판!환경은 지난번처럼 계속 유용되었다.
지난번 제56회 보도는 여기서부터 시작!
git 본가의 정보는 여기서부터 시작!
오늘의 과제는 지난번과 마찬가지로 여기도 참고했습니다!
10.3 Giit의 내부 참조 - Giit
Giit의 참조 아래에는 태그, 태그의 설명처가 있습니다!
주석이 달린 라벨판!
$ git log --oneline
1e3f489 (HEAD -> test, origin/master, master) third commit
514ff38 second commit
8cab88d first commit <!-- ここに注釈付きタグ、v3.0
$ git tag -a v3.0 8cab88d -m 'test tag'
$ git log --oneline
1e3f489 (HEAD -> test, origin/master, master) third commit
514ff38 (tag: v2.0_short, tag: v2.0, tag: v1.0) second commit
8cab88d (tag: v3.0) first commit // <!-- ここに追加されました!
$ git tag
v1.0
v2.0
v2.0_short
v3.0
// v3.0が、追加されていますね!
주석이 있는 라벨 내용을 확인하세요!
$ cat .git/refs/tags/v3.0
c6684e1aa89d75c53a6f6aacf3b56c4316510070
// ハッシュ値ですが、8cab88d first commit とは異なります
// では、その中身をのぞいて見ると・・・
$ cat-file -p c6684e1aa89d75c53a6f6aacf3b56c4316510070
object 8cab88d049aa2c32533dd2c7aef02470d493d0ce
type commit
tag v3.0
tagger Makoto Shiozumi <[email protected]> 1616242247 +0900
test tag
그리고 Giit 문서를 읽었어요.
Git 본사의 사이트에서 온 문서를 발췌하여 기록하시오!
Object의 항목은 위에 표시된 제출된 SHA-1 해시 값을 가리킨다는 것을 주의하십시오.또한 이 프로젝트가 반드시 제출에만 치중하는 것은 아니라는 것을 명심하세요.모든 Giit 객체에 태그를 추가할 수 있습니다.
모든 Giit 객체에 태그를 추가할 수 있습니다.
즉, 제출을 제외하고 지점, 문서, 트리 등은 어쨌든 해시 값의 물건에 대해 모든 제출 값에 서명을 붙일 것 같다.읊다, 읊조리다이거 편하네~ 아니면 해시값 검색도 어렵고 절대 기억이 안 나네(대폭소) 해시값을 여러 개 보면 그것만 혼란스러워지고 숫자의 마력도 느껴져.(^▽^;)
new.txt에 라벨을 붙여보세요!
$ ls -a
. .. .git bak new.txt test.txt
// 前回から利用しているリポジトリーには、new.txt ファイルがあります!
$ cat new.txt
new file
// ファイルの中身を確認!
$ git hash-object -w new.txt
fa49b077972391ad58037050f2a75f74e3671e92
// まずは、このオブジェクトのハッシュ値を求めて!
// 先頭の2文字がディレクトリー名となり、残り38文字がファイル名
// 以下のように、ファイルを確認できますね!
$ ls .git/objects/fa/49b077972391ad58037050f2a75f74e3671e92
.git/objects/fa/49b077972391ad58037050f2a75f74e3671e92
// これで、ファイルの存在確認できました!
$ git cat-file -p fa49b077972391ad58037050f2a75f74e3671e92
new file
// これで、再度、確認完了!
$ git tag -a new_txt fa49b077972391ad58037050f2a75f74e3671e92 -m 'new.txt tag'
// ハッシュ値、fa49b07~を指定して、タグ付けを実行します!
$ git tag
new_txt // <!-- 追加されていますね!
v1.0
v2.0
v2.0_short
v3.0
$ cat .git/refs/tags/new_txt
62ccb70b02c30a14a952a80064e2bf6bb1350a4f
// ファイルの中身は、ハッシュ値!
$ git rev-parse new_txt
62ccb70b02c30a14a952a80064e2bf6bb1350a4f
// タグ名からも、ハッシュ値を取得可能ですね!
$ git cat-file -p 62ccb70b02c30a14a952a80064e2bf6bb1350a4f
object fa49b077972391ad58037050f2a75f74e3671e92
type blob
tag new_txt
tagger Makoto Shiozumi <[email protected]> 1616244834 +0900
new.txt tag
// object fa49b07~のハッシュ値で、さらに、cat-file!
$ git cat-file -p fa49b077972391ad58037050f2a75f74e3671e92
new file
// これで、確認完了!
git cat-file-p62ccb70~중략
git rev-parse new_txt
설명도 없이 무심코 사용했는데 사실은 처음으로 명령을 사용했다.
$ git rev-parse HEAD
1e3f4892a273326780b4fb8b44a5b76469b5ffa2
// HEADのハッシュ値!
$ cat .git/refs/heads/master
1e3f4892a273326780b4fb8b44a5b76469b5ffa2
// rev-parse でも、cat コマンドでも、同じハッシュ値を取得!
$ git rev-parse test
1e3f4892a273326780b4fb8b44a5b76469b5ffa2
// ローカルtestブランチのハッシュ値!
$ cat .git/refs/heads/test
1e3f4892a273326780b4fb8b44a5b76469b5ffa2
// rev-parse でも、cat コマンドでも、同じハッシュ値を取得!
$ git cat-file -p new_txt
object fa49b077972391ad58037050f2a75f74e3671e92
type blob
tag new_txt
tagger Makoto Shiozumi <[email protected]> 1616246267 +0900
new.txt tag
// ハッシュ値、62ccb70 ~中略 ではなく、new_txt のタグ名指定でもOK!
많이 해보면 그것 때문에 혼란스러워요. 아무래도 라벨이 해시치가 있는 대상에게 붙어요!여러분도 자신의 생각대로 자신의 생각대로 시도해 보세요!총결산!
물론 라벨 대상의 내용은object 해시 값이기 때문에 해시 값을 가진 모든 대상에 라벨을 붙일 수 있습니다!해시치만 비교해 보면 솔직히 머리가 혼란스러워~~또는 해시치만 기억하는 것은 거의 힘들기 때문에 라벨 기능은 없어서는 안 될 존재다.즉, 브라우저의 책갈피처럼 URL을 저장합니다!
그럼, 이번엔 여기까지 수고하셨습니다!
Reference
이 문제에 관하여(Giit 명령 입문: Giit 객체(update-ref, TAG) 제57회), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/shiozumi/articles/fa5f83189514ce텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)