평소 회사에서 SVN을 사용하다가 이번에 개인 프로젝트를 진행하며 깃허브 브랜치 사용에 어려움을 겪었습니다. 역시 사람은 써버릇 해야... 😢 그래서 복습을 겸해 협업 시 깃허브, 깃배쉬, 깃허브 데스크탑을 어떻게 사용하는지 정리하고자 합니다.
브랜치(branch)란?
브랜치란 코딩의 '독립적인 작업 영역'을 의미합니다. 모든 깃 리포지토리(repository)는 'main' 혹은 'master'에서 시작하는데, 나무에서부터 가지가 뻗어나가는 이미지와 가깝다고 생각합니다. 새로운 브랜치를 생성하면, 현재의 브랜치로부터 분기되어 독립적인 개발 작업을 할 수 있습니다.
브랜치의 장점
- 독립적인 개발 환경: 메인 브랜치에 영향을 주지 않고 새로운 기능 개발, 실험, 버그 수정 등을 독립적으로 진행할 수 있습니다.
- 코드 안정성 보장: 메인 코드베이스는 안정적인 상태로 유지되며, 작업이 완료되고 테스트가 끝난 후에만 변경사항을 병합할 수 있습니다.
- 협업 용이: 여러 개발자가 동시에 다른 작업을 진행할 수 있어 협업이 원활해집니다.
👀 그래서 브랜치 사용은 어떻게?
1. 깃허브 리포지토리 생성 및 클론
깃허브에서 리포지토리 생성:
- 깃허브 웹사이트에 로그인합니다.
- 오른쪽 상단의 "+" 아이콘을 클릭하고 "New repository"를 선택
- 리포지토리 이름, 설명 등을 입력하고 "Create repository"를 클릭
깃배쉬에서 리포지토리 클론:
- 깃배쉬를 실행합니다.
- 다음 명령어를 사용하여 리포지토리를 클론
git clone <repository_url>
3. 클론된 디렉토리로 이동
cd <repository_name>
2. 브랜치 생성 및 이동
깃허브에서 브랜치 생성:
- 생성한 리포지토리로 이동 후 "Branch" 클릭
- "New branch" 버튼을 클릭
- 다시 돌아가 브랜치 옆 드롭다운(main▾) 클릭 후 브랜치 이동
깃배쉬에서 브랜치 생성:
- 다음 명령어를 사용하여 새 브랜치를 생성하고 이동
git checkout -b <new_branch_name>
깃허브 데스크탑에서 브랜치 생성:
- 깃허브 데스크탑에서 리포지토리를 열고, 화면 상단의 현재 브랜치 이름(보통 main 또는 master)을 클릭
- "New branch" 버튼을 클릭
- 새 브랜치 이름을 입력하고 "Create branch"를 클릭
- 원하는 브랜치를 선택하여 이동
3. 변경사항 커밋 및 푸시
깃배쉬에서 코드 수정 후 커밋:
- 로컬 리포지토리에서 파일을 수정
- 변경된 파일을 스테이지에 추가
git add .
3. 커밋 메시지를 작성하여 커밋
git commit -m "커밋 메시지"
깃배쉬에서 변경사항 푸시:
- 다음 명령어를 사용하여 변경사항을 원격 리포지토리에 푸시
git push origin <branch_name>
깃허브 데스크탑에서 변경사항 커밋 후 푸시:
- 변경된 파일이 있는지 확인하고, 변경사항을 선택하여 커밋 메시지를 작성
- "Commit to [브랜치 이름]" 버튼을 클릭
- 커밋 후 화면 상단의 "Push origin" 버튼을 클릭하여 변경사항을 원격 리포지토리에 푸시
4. 풀 리퀘스트 생성
깃허브에서 풀 리퀘스트 생성:
- 깃허브 웹사이트에서 해당 리포지토리로 이동
- "Pull requests" 탭을 클릭
- "New pull request" 버튼을 클릭
- 비교할 브랜치를 선택하고, 변경사항을 확인
- "Create pull request" 버튼을 클릭하여 제목과 설명을 입력한 후 "Create pull request"를 다시 클릭
깃허브 데스크탑에서 풀 리퀘스트 생성:
- "Preview pull request" 버튼을 클릭
- 비교할 브랜치를 선택하고, 변경사항을 확인
- "Create pull request" 버튼을 클릭하여 제목과 설명을 입력한 후 "Create pull request"를 다시 클릭
4. 코드 리뷰 및 머지(mergy)
코드 리뷰:
- 협업자들이 풀 리퀘스트를 확인하고 리뷰를 진행
- 필요한 경우 리뷰어가 변경 요청
머지:
- 모든 리뷰가 완료되고 변경사항이 승인되면, "Merge pull request" 버튼을 클릭하여 브랜치를 머지
- 머지 후 브랜치는 삭제 가능
📝요약
- 깃허브: 리포지토리를 생성
- 깃배쉬/깃허브: 리포지토리를 클론하고, 새로운 브랜치를 생성하여 이동
- 깃배쉬/깃허브: 코드 수정 후 변경사항을 커밋하고 원격 리포지토리에 푸시
- 깃허브: 풀 리퀘스트를 생성
- 깃허브: 협업자들이 코드 리뷰를 진행하고, 승인되면 브랜치를 머지
참조
[Git] Git 협업 할 때 Clone,branch 생성 후 pull request 과정/ hyewon jeong