branch
우리가 큰 개발 프로젝트를 진행한다고 가정해봅시다. 큰 개발 프로젝트를 진행할 땐 여러 개발 팀 혹은 팀원으로 나뉘어 동시에 개발을 합니다. 예를 들어, 머신러닝 개발 프로젝트를 하는 팀에서는 데이터를 전처리하고 저장을 하는 팀, 모델을 개발하는팀, 모델을 서빙하는 팀이 있을 수 있겠죠. 각 팀 안에서는 버그를 수정하거나 새로운 기능을 개발을 해야하는 일이 많을 것입니다. 각 팀별로 버전을 관리할 필요성이 있습니다. 이럴 때, 각 팀에서는 개발 프로젝트의 소스코드를 바탕으로 개발을 해나가야할 것입니다. 이후 개발이 완성되면 프로젝트에 병합을 시켜 새로운 버전울 생성하여 다른 팀원들과 충돌 나지 않으면서 프로젝트를 진행할 수 있겠죠.
브랜치(branch)는 프로젝트을 바탕으로 독립적으로 개발을 할 수 있을 수 있는 저장소(작업영역)입니다. 저장소를 처음 만들 때, 동시에 만들어지며 프로젝트 version을 관리하는 branch를 master branch라 합니다. 이후 기능 개발 시 master branch를 바탕으로 하거나 혹은 다른 branch를 바탕으로 또 다른 branch를 생성해 독립적으로 개발을 진행할 수 있습니다.
Git - 브랜치란 무엇인가
3.1 Git 브랜치 - 브랜치란 무엇인가 모든 버전 관리 시스템은 브랜치를 지원한다. 개발을 하다 보면 코드를 여러 개로 복사해야 하는 일이 자주 생긴다. 코드를 통째로 복사하고 나서 원래 코드와
git-scm.com
Merge into current branch
master branch를 바탕으로 새로운 기능 개발 혹은 버그를 고친다고 할 때 새로운 branch를 만들어 진행합니다. 이후 개발을 다 마치고 이를 master branch에 병합하여 새로운 버전을 만들고자 합니다. 이 때 우리는 Merge into current branch를 활용합니다. Merge into current branch를 통해 master branch에 해당 기능 branch을 병합합니다. 이후 필요하지 않은 branch는 delete를 할 수 있습니다.
Git - 브랜치와 Merge 의 기초
Merge 시에 발생한 충돌을 다루는 더 어렵고 요상한 내용은 뒤에 고급 Merge 에서 다루기로 한다.
git-scm.com
Conflict
앞서 살펴본 협업을 진행하다 보면, 완벽하게 중복을 피할 수 있을까요?! 곰곰히 생각해보면 앞서서 했던 방식들이 중복을 근본적으로 피하게 해주진 않는 것 같아요. 결국 같은 파일의 같은 줄을 수정했다면 충돌은 피할 수 없습니다. 이 때, 어떻게 하면 충돌을 해결 할 수 있을까요? 원격 저장소의 내용을 내려 받았을 때, 충돌이 발생 한 경우 세 가지 경우 중 하나를 선택 하여 다시 commit해서 통합된 버전을 만드는 것인데요. 선택지는 다음과 같습니다.
- 원격 저장소의 코드를 수용하는 경우 (남이 만든 코드를 반영)
- 지역 저장소의 코드를 반영하는 경우 (내가 만든 코드를 반영)
- 두 가지를 모두 반영하는 경우 (두 가지를 다 고려하여 수정)
다음 강의에서는 VScode의 기능을 통해 편리하게 위와 같은 방식의 해결책을 보여줍니다.
GIT CLI - Branch & Conflict - 생활코딩
수업소개 지금까지 만들던 버전에 이어서 서로 다른 여러 작업을 진행해야 하는 경우가 있습니다. 이런 경우 저장소를 복제하고 싶을 때가 있죠? 저장소를 복제하지 않고 동일한 효과를 낼 수
opentutorials.org
Pull request
프로그램을 개발하고 반영하는 일련의 과정들을 겪으면서, 이제 정말 개발할 준비가 된 것 같습니다. master 브랜치에 질서 정연하게 push만 하면 되는 거잖아요? 됐습니다! 어.. 하지만 제가 만든 내용들이 잘 작동하지 않거나 한번 검토가 필요할 때 바로 반영하기는 겁이나네요, 어떻게 하는 것이 좋을까요?? 바로 Pull request(줄여서 PR)을 활용하시면 됩니다. Pull request란 직접 master 브랜치에 push하는 것이 아닌 master 브랜치로 부터 새로운 브랜치를 만든 다음 개발 내역을 해당 브랜치에 적용하고, 그 내용이 master에 반영되기 전 검토를 해달라는 요청을 보내어 팀원들과 리뷰를 마친 후 반영 하는 방식입니다. 그 과정이 아주 엄격하게 관리 될 수도 있고, 아니면 간단한 리뷰를 통해서도 가능합니다.
수업소개 - 생활코딩
수업소개 pull request에 대한 전체적인 설명을 합니다. 또 우리 수업에서 다루는 것과 다루지 않는 것에 대해서도 설명합니다. 강의
opentutorials.org
'Git' 카테고리의 다른 글
Git과 Github (0) | 2022.08.26 |
---|