내 잡다한 노트
Git을 현업에서 사용할 때 보통 어떤 식으로 이루어질까? 본문
현업에서 Git은 협업과 코드 관리를 위한 핵심 도구로 사용됩니다. **Git을 사용하는 작업 흐름(Git Workflow)**은 회사의 개발 방식, 팀의 협업 도구, 프로젝트 규모 등에 따라 달라질 수 있지만, 대부분 아래의 단계를 기본으로 구성됩니다.
1. 작업 시작 전: 프로젝트 클론
새로운 개발자가 프로젝트에 참여하거나 작업을 시작할 때, 먼저 원격 저장소(Remote Repository)를 로컬로 클론합니다.
이 명령은 저장소를 로컬에 복사하며, 원격 저장소 이름은 기본적으로 origin으로 설정됩니다.
2. 브랜치 관리
현업에서는 브랜치를 사용하여 여러 개발 작업을 동시에 진행합니다. 대표적인 브랜치 관리 전략은 다음과 같습니다:
(1) Main Branches
- main 또는 master: 항상 배포 가능한 상태의 코드.
- develop: 다음 릴리스 개발을 위한 브랜치.
(2) Feature Branches
- 새로운 기능 개발, 버그 수정, 실험을 위한 브랜치.
- 브랜치 이름은 팀 컨벤션에 따라 다릅니다.
- 예: feature/login-page, bugfix/fix-auth-error.
3. 작업 브랜치 생성
작업 전, 새로운 브랜치를 생성하여 작업을 분리합니다.
git checkout -b feature/login-page
- 이 명령은 feature/login-page라는 새로운 브랜치를 생성하고 체크아웃합니다.
4. 코드 작성 및 커밋
작업 후 변경 사항을 확인하고 커밋합니다.
변경 사항 확인
git status
파일 스테이징
변경된 파일을 커밋 전에 스테이징합니다.
git add <file-name>
- 모든 파일을 스테이징하려면:
git add .
커밋
스테이징된 파일을 커밋합니다.
git commit -m "Add login page"
- 커밋 메시지 컨벤션:
- 제목은 명확하고 간결하게.
- 예: [Feature] Add login page layout.
5. 작업 브랜치 Push
원격 저장소로 작업 브랜치를 푸시합니다.
git push origin feature/login-page
- 원격 저장소에 feature/login-page 브랜치가 생성됩니다.
6. Pull Request (PR) 또는 Merge Request (MR)
팀원들과 협업하기 위해 작업을 리뷰받는 절차입니다. GitHub, GitLab, Bitbucket 등에서 PR 또는 MR을 생성합니다.
주요 내용:
- Base Branch: main 또는 develop.
- Feature Branch: feature/login-page.
- Description:
- 작업 목적, 주요 변경 사항, 검토 요청 등을 작성.
코드 리뷰
- 팀원이 코드 리뷰를 진행하며, 개선점이나 수정 요청을 댓글로 남깁니다.
7. Merge
PR/MR이 승인되면 브랜치를 병합합니다.
병합 방식:
- Merge Commit:
- 커밋 기록을 유지하며 병합.
git merge feature/login-page - Rebase:
- 커밋 기록을 정리하며 병합.
git rebase main - Squash Merge:
- 여러 커밋을 하나로 합쳐 병합.
8. 동기화 및 업데이트
팀원들이 병합한 최신 변경 사항을 로컬에 반영합니다.
최신 코드 가져오기
git pull origin main
충돌 해결
병합 또는 리베이스 중 충돌이 발생하면 파일을 수정하고 다시 커밋합니다.
9. 브랜치 정리
작업이 완료된 브랜치는 삭제하여 저장소를 깔끔하게 유지합니다.
로컬 브랜치 삭제
git branch -d feature/login-page
원격 브랜치 삭제
git push origin --delete feature/login-page
'Git' 카테고리의 다른 글
Git switch와 checkout의 차이 (0) | 2024.11.25 |
---|---|
Git 자주 쓰이는 명령어 정리 (0) | 2024.11.25 |
Git workflow (0) | 2024.11.23 |
Git 최초 설정 및 저장소 연결 (0) | 2024.11.23 |
[GIT] Pull Request 하기 위한 순서 (1) | 2023.11.09 |