구판 릴리스에 수정만 가져오기

GitBeginner
지금 연습하기

소개

지원 중인 Harbour Loop 안내서에는 다운로드 링크 수정 하나가 필요합니다. 개발 이력에는 이 수정과 아직 승인되지 않은 Explorer 개편이 이미 들어 있습니다. 원래 main 작업 트리에는 여전히 스테이징된 사진 계획, 그 뒤의 미스테이징 표지 초안, 미추적 비공개 메모가 있습니다.

첫 번째 가이드 실습의 작업 트리 기법으로 기존 유지보수 브랜치에 깨끗한 작업 디렉터리를 마련하세요. 실제 패치를 읽고 독립적으로 적용할 수 있는 수정 하나를 선택한 다음, cherry-pick으로 그 변경만 재적용하세요. 이어서 실제로 쓸 수 있는 구판 다운로드를 테스트하고 개편이나 미완성 작업이 릴리스로 들어가지 않았는지 확인합니다.

이 단원은 자체 저장소와 파일을 초기화하며 이전 VM을 재사용하지 않습니다. 기본적인 터미널/커밋/브랜치/log/diff 지식과 첫 번째 가이드 실습에서 배운 연결된 작업 트리 및 작은 파일 관련 개념이 필요합니다. 웹사이트 코드나 호스팅 계정은 필요하지 않습니다. Workspace와 Release Desk를 사용하세요. 실제 Git/HTTP 미리보기는 하나의 교육용 머신에서 로컬로 실행되며 작업 파일 수정이 아니라 브랜치 커밋을 읽습니다. 모든 경로와 인물 정보는 가상입니다. 소요 시간 40분은 저자의 추정치입니다.

수정할 패치 찾고 유지보수 작업 트리 열기

이 단계에서는 기대하는 다운로드를 확인하고 독립적인 수정과 개편을 구별한 뒤, main을 건드리지 않고 기존 구판 브랜치를 엽니다.

Release Desk를 열고 Open supported release를 누르세요. Harbour Loop, Pocket Edition 1.0, 3.2 km, North Pier를 확인하세요. Download quick start를 사용하고 브라우저의 다운로드 목록에서 quick-start.txt를 열어 원래 모임 장소와 짧은 준비 목록을 확인하세요.

Download full guide를 사용하세요. 실제 404 Guide not found 페이지가 표시되는 것이 정상입니다. 그런 다음 Back to release를 누르세요. 서비스에는 연결되지만 이 릴리스의 링크는 해당 릴리스에 없는 파일을 가리킵니다.

All releases를 사용한 다음 Open development preview를 여세요. Explorer Edition 2.0은 승인되지 않았습니다. 이쪽의 Download full guide는 이미 작동합니다. 다운로드 목록에서 harbour-guide-v1.txt를 열고 원래의 세 방향 안내, North Pier 출발점, 3.2 km 거리, 길 이용/쓰레기 주의 문구를 읽으세요. 개편은 제외하면서 이 유용한 수정은 유지하세요. All releases로 돌아오세요.

Workspace로 전환하여 편집용 저장소로 들어가세요.

cd /home/labex/project/release-desk/editor

경로를 잘못 입력했다면 pwd와 ls를 사용한 뒤 위의 전체 cd 명령을 다시 실행하세요. VM을 초기화하지 마세요. 저장소 로컬 작성자 정보를 설정하세요. --local은 전역 설정이 아니라 이 저장소와 연결된 작업 트리에 적용됩니다. 따옴표로 묶인 가상 예시는 바꿔도 됩니다.

git config --local user.name "Guide Editor"
git config --local user.email "guides@example.com"

유지보수에 앞서 미완성 상태를 읽으세요.

git branch --show-current
git status --short
git --no-pager diff --cached -- preview.txt
git --no-pager diff -- preview.txt
cat private-note.txt

첫 번째 실습처럼 main, MM preview.txt, ?? private-note.txt가 표시되어야 합니다. 첫 번째 diff는 스테이징된 Plan: add dusk photographs. 추가를 보여 줍니다. 두 번째는 그 뒤에 추가된 미스테이징 Draft: try the violet cover.를 보여 줍니다. 서로 다른 내용과 비공개 메모를 유지하세요. --cached는 인덱스와 커밋의 비교를 선택하고, 일반 diff는 작업 파일과 인덱스를 비교합니다. --no-pager는 바로 출력하며 --는 뒤의 경로를 구분합니다.

개발의 커밋된 이력을 읽으세요. --oneline은 각 항목을 짧게 표시하고 --decorate는 포인터와 태그에 이름표를 붙입니다.

git --no-pager log --oneline --decorate dev-start

고정 태그 dev-start는 처음 전달받은 main 끝 커밋을 표시합니다. 준비된 이력은 최신순으로 Plan the Explorer photo collection, Correct the Harbour Loop download link, Introduce the Explorer redesign, Prepare the supported Harbour Loop guide입니다. 태그와 main 끝 커밋을 변경하지 마세요.

선택하기 전에 최신 변경을 살펴보세요. show는 선택한 커밋과 패치를 표시합니다.

git --no-pager show dev-start

이 커밋은 explorer-plan.txt를 바꿉니다. 관련 없는 미래 작업입니다. 수정은 이 고정 북마크에서 부모 한 단계 전에 있습니다. ~1은 체크아웃을 바꾸지 않고 해당 부모를 선택합니다.

git --no-pager show dev-start~1

전체 패치는 한 줄짜리 full-guide.path만 바꾸어 /downloads/harbour-guid-v1.txt를 /downloads/harbour-guide-v1.txt로 고칩니다. 이 수정은 독립적으로 적용할 수 있으며 개편을 필요로 하지 않습니다. 그보다 이전의 개편도 살펴보세요. ~2는 고정 북마크에서 부모 커밋을 따라 두 단계 거슬러 올라가, 그 위치의 조상 커밋 하나를 선택합니다.

git --no-pager show dev-start~2

이 커밋은 릴리스 정체성을 바꾸고 Explorer 계획을 추가합니다. 개발 브랜치 전체를 병합하면 유용한 수정뿐 아니라 승인되지 않은 이 변경도 가져오게 됩니다.

main 옆에 기존 지원 브랜치를 여세요. ..는 부모 디렉터리를 뜻하며, 두 번째 인수는 main에서 새 브랜치를 만드는 대신 기존 브랜치를 명시적으로 선택합니다.

git worktree add ../supported-v1 release/1.0
git worktree list
cd ../supported-v1
git branch --show-current
git status --short
cat release.txt

Git의 작업 트리 목록에 두 디렉터리가 모두 있고, 브랜치 release/1.0, 깨끗한 유지보수 상태, Pocket Edition 1.0 정체성이 표시되어야 합니다. 별도의 인덱스가 cherry-pick에 필요한 깨끗한 대상을 제공하는 동안 main의 초안은 제자리에 남습니다. 실수로 main을 다시 추가하려고 했다면 첫 번째 실습에서 배운 체크아웃 중이라는 거부를 처리하는 데 force나 reset은 필요하지 않습니다. git worktree list를 확인하고 기존 지원 브랜치를 사용하세요.

수정 적용하고 보존된 릴리스 확인하기

이 단계에서는 선택한 패치만 구판 릴리스에 재적용하고 실제 안내서를 테스트한 뒤 원래 개발 작업이 온전히 남았는지 확인합니다.

Workspace의 /home/labex/project/release-desk/supported-v1에서 계속 진행하세요. cherry-pick은 선택한 커밋이 도입한 변경을 현재 브랜치에 적용하며, 보통 새 커밋을 기록합니다. 선택한 커밋의 모든 조상을 병합하지는 않습니다. 이 환경에서는 구판 브랜치의 부모가 원본 수정 커밋의 부모와 다르므로 새 수정 커밋은 고유한 커밋 ID를 갖습니다.

이전 링크를 한 번 읽은 다음 살펴본 독립적인 수정을 적용하세요. 저장소 객체와 참조를 공유하므로 어느 연결된 작업 트리에서도 태그를 볼 수 있습니다.

cat full-guide.path
git cherry-pick dev-start~1

충돌 없이 다운로드 링크 제목의 새 커밋 하나와 파일 하나의 변경이 표시되어야 합니다. 준비된 패치는 지원 기준 버전의 동일한 작은 설정을 바꾸며 의존성 연결이 없습니다. 커밋 ID는 다를 수 있습니다.

유지보수 브랜치에 정확히 무엇이 추가되었는지 검토하세요. 고정 태그 supported-start는 처음 전달받은 구판 끝 커밋을 표시하고, HEAD는 이 작업 트리의 현재 커밋이며, diff는 두 스냅샷을 비교합니다.

git --no-pager diff supported-start HEAD

전체 안내서 경로 수정만 표시되어야 합니다. release.txt, 안내서 내용, 원래 미리보기 텍스트는 바뀌지 않아야 하며 Explorer 전용 파일도 없어야 합니다. 실제 이력과 깨끗한 대상 상태를 확인하세요.

git --no-pager log --oneline --decorate
git status --short
cat release.txt

원래 지원 커밋 바로 다음에 수정 커밋 하나가 있어야 합니다. 개발 개편과 사진 계획 커밋은 이 브랜치의 조상 이력에 없어야 합니다. 정확한 메시지 철자가 성공 기준은 아닙니다. 독립적인 패치, 올바른 기준 버전, 보존된 파일이 기준입니다.

Release Desk로 전환하고 머리글의 Release Desk를 눌러 개요로 돌아간 다음 Open supported release를 누르세요. Pocket Edition 1.0, Harbour Loop, 3.2 km, North Pier를 유지해야 합니다. 로컬 미리보기는 방금 앞으로 이동시킨 브랜치 커밋을 읽으며, 원격 또는 프로덕션 배포를 흉내 내는 것이 아닙니다.

Download full guide를 누르세요. 브라우저의 다운로드 목록에서 실제 harbour-guide-v1.txt를 여세요. 앞서 개발 다운로드로 읽은 파일과 전체 내용을 비교하세요. North Pier 출발점, Clock Steps와 옛 보트 창고 및 Anchor Square를 지나는 세 방향 안내 전체, 3.2 km, 마지막 길 이용/쓰레기 주의 문구를 확인하세요. 수정은 새로운 Explorer 경로가 아니라 원래 지원 안내서를 전달합니다. 다운로드 링크나 성공 상태 코드만으로는 내용의 완전성을 입증할 수 없습니다.

Download quick start를 사용하고 원래 준비 목록을 유지하세요. All releases에서 개발 미리보기를 열어 Explorer Edition 2.0이 변경되지 않았는지 확인하세요. All releases로 돌아오세요.

Workspace로 전환하고 main의 원래 디렉터리로 다시 들어가세요. 디렉터리가 바뀌면 명령으로 확인하는 작업 트리의 인덱스도 달라집니다. log 옵션 -1은 출력을 최신 커밋 하나로 제한합니다.

cd /home/labex/project/release-desk/editor
git branch --show-current
git --no-pager log -1 --oneline --decorate
git status --short
git --no-pager diff --cached -- preview.txt
git --no-pager diff -- preview.txt
cat private-note.txt

최신 커밋은 여전히 dev-start로 표시된 원래 사진 계획 커밋이어야 합니다. main의 원래 MM preview.txt와 ?? private-note.txt, 동일한 스테이징된 사진 계획 문장, 별개의 미스테이징 보라색 표지 문장, 변경되지 않은 비공개 메모가 있어야 합니다. 상태를 깨끗하게 만들기 위해 이를 커밋하거나 버리지 마세요. 지원 작업 트리는 계속 사용할 수 있게 남겨 두세요. 확인 항목은 실제 다운로드와 main 보존 여부뿐 아니라 연결 관계, 지원 이력, 필요한 모든 파일도 함께 검사합니다.

요약

실제 개발 패치를 살펴보고 독립적인 링크 수정을 선택하여 깨끗한 유지보수 작업 트리에서 cherry-pick으로 재적용했습니다. 구판 릴리스에는 개편을 가져오지 않고 유용한 수정 하나만 반영했습니다.

전체 안내서와 빠른 시작 다운로드는 완전한 상태로 유지되었으며, 개발 브랜치 끝 커밋, 스테이징된 초안과 미스테이징 초안 버전, 비공개 메모도 온전히 남았습니다. 독립 챌린지에서는 지원 브랜치, 안내서, 수정의 위치가 달라지므로 오프셋을 그대로 복사하지 말고 증거를 보고 선택하세요.