콘텐츠로 건너뛰기
GitTree

레슨 14 · 일상 업무

태그, 주석 및 릴리스 이름 지정

검사된 기본 커밋에서 주석이 달린 v0.1.0을 생성하고 해당 태그만 로컬 원본으로 푸시합니다. 태그 개체를 브랜치, 서명 및 호스팅 릴리스와 구별합니다.

이 브라우저에 진행 상황이 저장되었습니다.

재생하면 YouTube에서 동영상이 로드됩니다(개인정보 보호 강화 모드).

영어 내레이션 · English and Arabic 캡션

비디오 페이지 열기YouTube에서 시청하기

무엇을 배울 것인가

  • 의도적인 메시지로 주석이 달린 태그를 만듭니다.
  • 태그 객체와 벗겨진 커밋을 별도로 확인합니다.
  • 모든 태그를 게시하지 않고 하나의 명시적 태그를 푸시합니다.
  • 태그 생성을 호스팅된 릴리스와 구별되게 유지하세요.

시작하기 전에

13과가 끝난 곳에서 시작하세요: 메인/H7 클린, 서버 메인 H7, F1에 게시된 기능; v0.1.0 태그가 없습니다. 로컬 데모 태그 서명은 명시적으로 요청되지 않습니다.

동영상은 Ubuntu 24.04에서 Git 2.52.0 및 GitTree 2.0으로 녹화되었습니다. 태그가 생성되어 앱에 푸시되었습니다. 이전 상태, 거부된 중복 이름 및 검사가 터미널에서 실행되었습니다. macOS 또는 Windows에서는 아무것도 실행되지 않았으며 Ubuntu는 기록된 유일한 Linux 시스템입니다. GitTree의 소스 Git 층은 2.39.0입니다.

GitTree에서 로그인을 요청합니다. 그러면 무료 플랜이 여기의 모든 단계를 다룹니다. 공급자 계정, Pro/평가판, API 자격 증명 또는 인터넷 서비스가 필요하지 않습니다. 로컬 베어 원본은 GitLab 또는 CI가 아닙니다. 모든 ID는 example.com을 사용합니다. 소스 체크아웃 내에서 이 강의를 실행하지 마세요.

연속해서가 아닌 동일한 입력에서 GitTree 또는 기본 경로를 통해 변형을 만듭니다. 읽기 전용 확인은 둘 중 하나를 따를 수 있습니다. 터미널 작업으로 설명되는 모든 준비는 기본 준비로 표시되며 결코 발명된 앱 기능이 아닙니다.

개념 및 상태 효과

브랜치는 일반적으로 커밋을 통해 진행됩니다. 릴리스 태그는 의도적으로 안정적인 이름입니다. 경량 태그는 개체의 이름을 직접 지정합니다. 주석이 달린 태그는 자체 태그 개체, 태거 및 메시지를 추가합니다.

v0.1.0은 여기에서 태그 개체의 이름을 지정합니다. v0.1.0^{}는 이를 커밋으로 벗겨냅니다. 해당 두 레이어에 대해 서로 다른 개체 ID가 예상되며 두 릴리스를 나타내지 않습니다.

주석은 암호화 서명이 아닙니다. Git 태그를 게시한다고 해서 공급자 릴리스 노트를 생성하거나 자산을 업로드하거나 데스크톱 릴리스를 배포하는 것은 아닙니다. 여기서는 외부 작업이 수행되지 않습니다.

Create는 refs/tags/v0.1.0과 태그 객체를 추가합니다. push는 선택한 서버 태그를 추가합니다. HEAD, 로컬 브랜치, 인덱스, 작업 파일은 이동되지 않습니다.

정확한 프로젝트 상태 준비

레슨 13 이후에는 원본 메인을 사용하세요. 태그를 생성하기 전에 실제 H7 SHA를 검사하고 태그가 없는지 확인하세요. 태그를 지정한 후에는 노트북 커밋을 추가하지 마세요.

GitTree에서

팔레트: Command+Shift+P(Ubuntu에서 Ctrl+Shift+P); 정확한 이름의 명령을 입력하고 선택하십시오. 명명된 참조 작업은 인수가 없는 팔레트 바로 가기가 아닌 해당 행의 상황에 맞는 메뉴를 사용합니다.

  1. 실제 기본/H7 그래프 행을 선택합니다(문서: Leo의 검토 알림 추가). 바닥글 변경 사항과 ID를 확인한 다음 마우스 오른쪽 버튼을 클릭하세요.
  2. Tag Here을 열고 Create Annotated Tag Here…을 선택합니다(행 메뉴에는 간단한 태그를 만드는 일반 Create Tag Here…도 나열됩니다). 대화 상자 제목은 커밋의 짧은 ID인 "주석이 달린 태그 만들기"입니다.
  3. 태그 이름 v0.1.0 및 Message First 사용 가능 GitTree 기능 과정 체크포인트를 설정합니다.
  4. Signing에서 선택 사항은 Git 구성 따르기, 이 태그에 서명 및 Don’t sign this tag입니다. 대화 상자에는 Git 구성이 태그에 서명하지 않는다는 내용이 표시됩니다(tag.gpgSign이 설정되지 않음). 이 명시적 서명되지 않은 강의에 대해서는 이 태그에 서명하지 않음을 선택하세요. 전역 서명 구성을 변경하지 마십시오.
  5. 태그 생성을 한 번 클릭하고 기다리세요. v0.1.0이 체크아웃을 변경하지 않고 의도한 커밋에 레이블을 지정하는지 확인하세요.
  6. 측면 패널의 Tags 그룹에서 v0.1.0 → Push Tag를 마우스 오른쪽 버튼으로 클릭합니다. 동일한 메뉴에는 이 단원에서 사용하지 않는 태그 삭제... 및 원격에서 태그 삭제...도 제공됩니다. 알림에는 '푸시된 태그 v0.1.0'이라고 적혀 있습니다.
  7. 기본 태그 개체 유형, 메시지, 벗겨진 커밋과 서버 태그 ID를 확인합니다. 주석과 서명을 혼동하지 마십시오.
  8. 메인을 깨끗하게 유지하고 태그는 변경하지 마세요. 모든 태그 푸시를 사용하거나 공급자 릴리스를 생성하지 마십시오.

모든 일반 커밋의 경우: 요약이 명시된 주제입니다. 설명이 비어 있습니다. 이전 커밋 수정, 후크 건너뛰기, 서명자 추가, 다른 작성자, 커밋 후 푸시 및 빈 커밋 허용 끄기; 공동저자는 없습니다. 명명된 파일만 준비한 다음 N개 파일에 대한 변경 사항을 한 번 커밋(파일은 1개)하거나 Command+Enter를 누르세요. 실제 결과를 기다리십시오. 명시된 옵션만 변경하여 명시적으로 수정하는 수업입니다.

터미널에서

클린 메인의 네이티브 동등물:

Command · bash
git tag --annotate --no-sign v0.1.0 --message "First usable GitTree Features course checkpoint"
git cat-file -t v0.1.0
git for-each-ref --format='%(contents:subject)' refs/tags/v0.1.0
git rev-parse 'v0.1.0^{}'
git push --quiet origin refs/tags/v0.1.0
git ls-remote --tags origin refs/tags/v0.1.0 'refs/tags/v0.1.0^{}'
git status --short

--annotate는 짧은 형식인 -a(git tag -a v0.1.0 -m "message")을 가지며, --message는 -m입니다. 어느 쪽이든 Git은 경량 git tag v0.1.0과 달리 자체 메시지와 함께 태그 객체를 저장합니다.

생성/푸시 성공; 유형 및 메시지 출력:

출력
tag
First usable GitTree Features course checkpoint

벗겨낸 SHA는 실제 메인과 동일합니다. ls-remote는 실제 태그 객체 및 벗겨낸 커밋 ID를 반환합니다. 모델 라벨이 아닌 이러한 변수 값을 기록하십시오. 최종 상태가 비어 있습니다. 별도의 중복 이름 시도:

Command · bash
git tag v0.1.0

실제 stderr, 128번 출구:

출력
fatal: tag 'v0.1.0' already exists

원래 태그는 그대로 유지됩니다. 충돌을 숨기기 위해 -f를 사용하지 마십시오.

결과

Where you end: 주석이 달린 v0.1.0이 로컬 및 로컬 베어 원본에 존재합니다. 메시지 첫 번째 사용 가능 GitTree 기능 과정 체크포인트, 벗겨진 커밋 H7. 기본/HEAD/색인/작업은 변경되지 않습니다. 호스팅된 릴리스나 서명이 청구되지 않았습니다.

일반적인 실수

  • 서명된 주석이 달린 태그를 호출합니다.
  • 기본 행 대신 선택한 이전 행에 태그를 지정합니다.
  • 의도치 않게 모든 로컬 태그를 푸시합니다.

뭔가 잘못되면

확인하기 전에 잘못된 생성을 취소하세요. 로컬 태그가 잘못된 경우 실제 대상과 명시적 삭제 전에 게시되었는지 여부를 검사하세요. 기본 중복 거부는 기존 참조를 유지합니다.

이해도를 확인해보세요

각 질문에 답한 후 그 이유를 읽어보세요. '필수'라고 표시된 질문은 수업 완료에 반영됩니다.

  1. 질문 1/6

    여기서 v0.1.0은 무엇입니까?

    답을 하나 선택하세요.

  2. 질문 2/6

    어떤 주장이 타당합니까?

    해당하는 답을 모두 선택하세요.

  3. 질문 3/6
    필수

    태그를 지정하면 또 다른 주요 커밋이 생성되나요?

    답을 하나 선택하세요.

  4. 질문 4/6
    필수

    강제 없이 동일한 이름을 재사용: 결과?

    답을 하나 선택하세요.

  5. 질문 5/6

    태그와 기본 ID가 다름: 손상되었나요?

    답을 하나 선택하세요.

  6. 질문 6/6
    필수

    그 결과는 무엇으로 증명되나요?

    해당하는 답을 모두 선택하세요.

6개 중 0개 정답

수업을 완료하려면 필수 질문에 올바르게 답하세요.

이 브라우저에서 확인했습니다.

연습

객체 유형 태그, 정확한 주석, 벗겨진 SHA=main 및 두 서버 태그 레이어를 모두 확인하세요. 첫 번째 태그와 깔끔한 작업을 유지하면서 중복 거부를 예측합니다.

귀하의 확인: 사이트에서 귀하의 컴퓨터를 볼 수 없습니다.

수업을 완료하려면 필수 질문에 올바르게 답하고 실제 연습을 확인하세요.

요약

  • Annotation은 태그 객체를 추가합니다.
  • 선택한 태그만 푸시합니다.
  • Git 태그와 호스팅된 릴리스는 다릅니다.

용어집 소개

주석이 달린 태그 — وسم مصروح; 경량 태그 — وسم انات; 술래 - منهئ الوسم; 껍질을 벗긴 커밋 — الإيداع المحسوم.

비디오 대본

영상의 나레이션, 큐별로.

성적표 표시
  1. 정확한 체크포인트부터 시작하세요.
  2. 지점 이름, 색인 그리고 작업 버전.
  3. 분리된 코스 사본만 준비하십시오.
  4. 태그를 지정하기 전에 정확한 커밋을 선택하세요.
  5. 해당 커밋에 주석이 달린 태그를 만듭니다.
  6. 이름과 의미 있는 주석을 작성합니다.
  7. 주석은 의미하지 않습니다. 암호화 서명.
  8. 태그는 지점을 전환하지 않습니다.
  9. 명명된 태그만 푸시합니다.
  10. 태그를 벗겨서 커밋을 확인하세요.
  11. 호스팅된 릴리스를 고안하지 마십시오.
  12. 여기서 v0.1.0은 무엇입니까?
  13. 확인된 개체 유형은 다음과 같습니다. 태그가 있으면 메인으로 벗겨집니다.
  14. 어떤 주장이 타당합니까?
  15. 서명되지 않은 주석은 다음을 추가합니다. 메타데이터는 있지만 HEAD는 이동하지 않습니다.
  16. 태그를 지정하면 또 다른 주요 커밋이 생성되나요?
  17. 태그 참조/객체 포인트 기존 커밋에.
  18. 강제 없이 동일한 이름을 재사용: 결과?
  19. 측정된 중복 시도 128을 종료하고 태그를 보존했습니다.
  20. 태그와 기본 ID가 다름: 손상되었나요?
  21. 주석이 달린 태그 자체의 객체 커밋 대상과 다릅니다.
  22. 그 결과는 무엇으로 증명되나요?
  23. 객체 레이어와 실제 선택된 서버 참조.
  24. 실제 결과를 확인하고, 단순한 메시지가 아닙니다.
  25. 행동하기 전에 변경된 입력을 예측하십시오.
  26. 복구하기 전에 유용한 작업을 보존하세요.
  27. 계속하기 전에 체크포인트를 증명하세요.
  28. 검증된 결과를 유지 다음 단계를 위해.