🌱 오늘의 주제 : Sourcetree를 이용한 Git 정리
🌱 Stage hunk란?
- Stage hunk란?
- SourceTree에서 **"Stage Hunk"**는 작업 디렉토리에서 변경된 특정 부분(hunk)만을 선택적으로 스테이징하는 기능입니다. 이를 통해 파일 전체가 아닌, 특정 부분의 변경 사항만 staging area로 옮겨서 커밋할 수 있습니다.
- 선택적 커밋 관리
파일의 변경 내용 중 일부만 스테이징하고 커밋하려는 상황에서 유용합니다. 예를 들어, 파일의 여러 부분을 수정했는데, 그 중 특정 부분만 먼저 커밋하고 나머지는 나중에 커밋하고 싶을 때 사용합니다. - 실험적 코드 제외
작업 중에 시도한 실험적인 코드가 있을 때, 해당 부분은 스테이징하지 않고 필요한 변경 사항만 커밋할 수 있습니다. - 부분적인 변경 사항 기록
단계별로 코드를 커밋하여 작업 히스토리를 더 세밀하게 관리할 수 있습니다.
- 선택적 커밋 관리
- SourceTree에서 **"Stage Hunk"**는 작업 디렉토리에서 변경된 특정 부분(hunk)만을 선택적으로 스테이징하는 기능입니다. 이를 통해 파일 전체가 아닌, 특정 부분의 변경 사항만 staging area로 옮겨서 커밋할 수 있습니다.
🌱 Staged Files
SourceTree에서 Staged Files는 Git의 **Staging Area(스테이징 영역)**에 있는 파일들로, 커밋할 준비가 완료된 파일들을 의미합니다. SourceTree에서는 사용자가 GUI 환경에서 파일을 손쉽게 관리할 수 있도록 Staged Files와 Unstaged Files 영역을 분리하여 보여줍니다.
SourceTree에서 Staged Files의 역할과 관리 방법
- Unstaged Files에서 Staged Files로 이동
SourceTree에서 파일을 변경하거나 새로 추가하면 Unstaged Files 영역에 나타납니다. 파일 옆에 있는 체크박스를 클릭하거나 파일을 드래그해서 Staged Files 영역으로 옮기면 해당 파일이 스테이징되고, 다음 커밋에 포함될 준비가 됩니다. - 부분 스테이징 (Hunk 단위)
전체 파일을 스테이징하지 않고 특정 부분(hunk)만 스테이징할 수도 있습니다. 파일을 열어 필요한 부분만 선택적으로 Staged Files 영역으로 이동할 수 있습니다. 이를 통해 변경 사항을 세밀하게 관리할 수 있습니다. - 커밋 준비
Staged Files에 포함된 파일들은 다음 커밋에 포함될 준비가 된 상태입니다. 커밋 메시지를 작성하고 커밋 버튼을 클릭하면 Staged Files 영역의 파일들이 커밋됩니다.
🌱 Commit
SourceTree에서 Commit은 **Staged Files(스테이징된 파일)의 변경 사항을 Git 저장소에 저장하는 작업을 의미합니다. Commit은 변경 사항을 하나의 버전으로 기록하는 과정이며, 코드 수정 이력과 작업 내역을 저장소에 남길 수 있어 프로젝트 관리와 협업에 매우 중요한 단계입니다.
SourceTree에서 Commit의 역할과 절차
- 파일 수정 및 스테이징
SourceTree에서 파일을 수정하면 Unstaged Files 목록에 나타납니다. 이 파일들을 선택적으로 Staged Files로 이동해 다음 커밋에 포함할 준비를 합니다. - 커밋 메시지 작성
스테이징이 완료되면 커밋 메시지를 작성합니다. 메시지는 변경 사항의 요약 또는 설명을 포함하여, 나중에 코드 이력을 쉽게 추적할 수 있게 도와줍니다. 좋은 커밋 메시지는 변경의 목적과 내용을 명확히 나타내는 것이 좋습니다. - 커밋 버튼 클릭
"Commit" 버튼을 클릭하면 Staged Files에 포함된 파일들의 변경 사항이 저장소에 커밋됩니다. 이때, 커밋은 로컬 저장소에만 기록되며, 원격 저장소에는 반영되지 않습니다. - 원격 저장소로 푸시 (선택사항)
로컬 커밋을 완료한 후, 원격 저장소와의 동기화를 위해 Push를 수행할 수 있습니다. 이를 통해 다른 협업자와 커밋 내용을 공유할 수 있습니다.
🌱
🌱
🌱
'Git' 카테고리의 다른 글
Git submodule을 통한 application.yml 관리 (0) | 2023.12.21 |
---|---|
Git - 명령어 정리 (0) | 2023.10.19 |
Git - gitignore 규칙 (0) | 2023.08.25 |
Git - git의 working flow (0) | 2023.08.17 |
Github - label 의미 (2) | 2023.05.06 |