GitHub 흐름의 구성 요소
이 단원에서는 GitHub 흐름의 다음 구성 요소를 검토합니다.
- 분기
- 커밋
- 끌어오기 요청
- GitHub 흐름
분기란?
마지막 섹션에서는 리포지토리에 새 파일과 새 분기를 만들었습니다.
분기는 작업 중인 전체 프로젝트에 영향을 주지 않고 변경할 수 있는 위치이기 때문에 GitHub 환경의 필수적인 부분입니다.
분기는 새로운 기능 또는 수정 사항을 실험할 수 있는 안전한 장소입니다. 실수를 하면 변경 내용을 되돌리거나 더 많은 변경 내용을 푸시하여 실수를 해결할 수 있습니다. 분기를 병합할 때까지 기본 분기에서 변경 내용이 업데이트되지 않습니다.
참고 항목
또는 터미널에서 git을 사용하여 새 분기를 만들고 체크 아웃할 수 있습니다. 명령은 git checkout -b newBranchName
입니다.
커밋이란?
이전 단원에서는 커밋을 푸시하여 리포지토리에 새 파일을 추가했습니다. 커밋이 무엇인지 간략하게 살펴보겠습니다.
커밋은 분기에서 하나 이상의 파일을 변경하는 행위입니다. 커밋을 만들 때마다 고유 ID가 시간 및 기여자와 함께 할당되고 추적됩니다. 커밋은 파일 또는 연결된 항목(예: 문제 또는 끌어오기 요청)의 기록을 검토하는 모든 사용자에게 명확한 감사 내역을 제공합니다.
git 리포지토리 내에서 파일은 버전 제어 프로세스를 거치면서 여러 유효한 상태로 존재할 수 있습니다. Git 리포지토리의 파일에 대한 기본 상태는 추적되지 않음 및 추적됨입니다.
추적되지 않음: 아직 Git 리포지토리에 속하지 않은 파일의 초기 상태입니다. Git은 해당 존재를 인식하지 못합니다.
추적됨: 추적된 파일은 Git에서 적극적으로 모니터링하는 파일입니다. 다음 하위 상태 중 하나일 수 있습니다.
- 수정되지 않음: 파일이 추적되지만 마지막 커밋 이후 수정되지 않았습니다.
- 수정됨: 마지막 커밋 이후 파일이 변경되었지만 다음 커밋을 위해 이러한 변경 내용이 아직 준비되지 않았습니다.
- 스테이징됨: 파일이 수정되었으며 변경 내용이 준비 영역(인덱스라고도 함)에 추가되었습니다. 이러한 변경 내용을 커밋할 준비가 된 것입니다.
- 커밋됨: 파일이 리포지토리의 데이터베이스에 있습니다. 파일의 커밋된 최신 버전을 나타냅니다.
이러한 상태와 하위 상태는 팀과 협력하여 프로젝트 프로세스에서 각 커밋이 어디에 있는지 파악하는 데 중요합니다. 이제 끌어오기 요청으로 이동하겠습니다.
끌어오기 요청이란 무엇일까요?
끌어오기 요청은 특정 분기의 커밋을 다른 분기에 병합할 수 있음을 알리는 데 사용하는 메커니즘입니다.
끌어오기 요청을 제출하는 팀 구성원은 1명 이상의 검토자에게 코드를 확인하고 병합을 승인하도록 요청합니다. 이러한 검토자는 변경 사항에 관한 설명을 달고, 자신의 변경 사항을 추가하거나, 끌어오기 요청을 사용하여 추가 논의를 진행할 수 있습니다.
변경 내용이 승인되면(필요한 경우) 끌어오기 요청의 원본 분기(비교 분기)가 기본 분기에 병합됩니다.
이제 모든 재료를 알게 되었으므로 GitHub 흐름을 검토해 보겠습니다.
GitHub 흐름
GitHub 흐름은 안전한 실험을 허용하는 간단한 워크플로로 정의할 수 있습니다. 분기, 끌어오기 요청 및 병합을 사용하여 팀과의 새로운 아이디어 및 공동 작업을 테스트할 수 있습니다.
이제 GitHub의 기본 사항을 알게 되었으므로 GitHub 흐름 및 해당 구성 요소를 안내할 수 있습니다.
- 먼저 분기를 만들어 작성한 변경 내용, 기능 및 수정 사항이 기본 분기에 영향을 주지 않도록 합니다.
- 다음으로 변경을 수행합니다. 기본 분기에 병합하기 전에 기능 분기에 변경 내용을 배포하는 것이 좋습니다. 이렇게 하면 프로덕션 환경에서 변경 내용이 유효합니다.
- 이제 공동 작업자에게 피드백을 요청하는 끌어오기 요청을 만듭니다. 끌어오기 요청 검토는 끌어오기 요청을 병합하기 전에 일부 리포지토리에 승인 검토가 필요한 경우에 매우 중요합니다.
- 그런 다음 공동 작업자의 피드백을 검토하고 구현합니다.
- 변경 사항이 마음에 든다면 끌어오기 요청을 승인하고 기본 분기에 병합할 차례입니다.
- 마지막으로 분기를 삭제할 수 있습니다. 분기를 삭제하면 분기에 대한 작업이 완료되었음을 알리고 사용자 또는 다른 사용자가 실수로 이전 분기를 사용하는 것을 방지할 수 있습니다.
이제 GitHub 흐름 주기를 모두 마쳤습니다.
다음 섹션으로 이동하여 문제와 토론의 차이점을 살펴보겠습니다.