프로그래밍에 있어서, 파일의 추가, 변경은 빈번히 일어나는 일이다. 그렇다보면 이전에 작성한 내용들을 보존해야할 필요를 느끼는데 이러한 일을 해결해 주는 것이 바로 버전 관리 시스템(Version Control System) 이다. 이 중에서 가장 많이 쓰이고 강력한 도구로 Git을 뽑을 수 있다.
이번시간에는 여러가지 Git 브랜치 전략 중 하나인 Git Workflow에 대해 알아보자.
GIt Workflow 전략은 다음과 같다.
- 프로젝트의 레포지토리를 fork한다.
- 복사해온 프로젝트 레포지토리를 git clone 명령을 사용하여 각자의 로컬로 가져온다.
이렇게 하면 팀원의 레포지토리와 나의 로컬을 연결하는 작업이 필요하다. 팀원이 작업한 결과물을 가져와서 그 결과를 베이스로 코드를 작성해야 하기 때문이다.
- git remote add 별칭 Repo URL for pairs fork
git remote -v
별칭에는 팀원의 이름이나 아이디 등을 넣어주어 팀원들을 구분하는 역할을 해준다.
- 팀원이 코드를 수정하고 add, commit을 한다.
- 작업한 코드를 자신의 레포지토리에 push 한다.
git push origin master(or other branch name)
여기까지 했으면 이제 또다른 팀원이 코드를 수정할 차례이다.
- 다음 팀원은 직전에 작성된 코드를 자신의 로컬로 가져온다.
git pull 별칭 master(or other branch name)
- 팀원이 코드를 수정하고 add, commit을 한다.
- 작업한 코드를 자신의 레포지토리에 push 한다.
git push origin master(or other branch name)
또다른 팀원이 코드를 수정할 때마다 6번~8번 순서를 반복한다.
여기서 기억해야 할 점은 항상 push는 자신의 레포지토리에, pull은 팀원의 레포지토리에서 해야 한다는 점이다.
Git은 여러 개의 브랜치를 만들 수 있는데 각각의 브랜치는 독립되어 서로 영향을 주지 않는다. 이것은 여러 명이 하나의 프로젝트를 개발하며 일어날 수 있는 충돌, 동선의 겹침 등을 막아줄 수 있다. 따라서 Git Branching은 새로운 기능을 개발할 때, 원본에 영향을 주지 않고 다양한 시도를 하고 싶을 때 사용한다. 여기서 꼭 기억해야 할 점은 브랜치는 현재 작업 공간을 베이스로 만들어진다는 점이다. 그래서 항상 자신이 어떤 브랜치에 위치해있고, 원하는 브랜치에서 작업하기 위해 브랜치를 옯겨다니는 방법을 알고 있어야 한다.
- Git checkout 옮겨가고 싶은 브랜치 이름
해당 명령을 이용해 원하는 브랜치로 옮겨갈 수 있다. 만약 git checkout feature 이라고 명령을 하면 원래 있던 master 브랜치에서 feature 이라는 브랜치로 작업 공간을 옮길 수 있다.
- git checkout -b 만들고 싶은 브랜치 이름
해당 명령을 이용해 새로운 브랜치를 생성할 수 있다. 다만 이렇게 작성하면 새로운 브랜치를 만드는 것 뿐만 아니라 해당 브랜치로 작업 공간이 이동된다.
즉, 만약 git checkout -b feature1 이라고 명령을 하면 feature1이라는 새로운 브랜치가 생성되고 작업공간도 master 브랜치에서 feature 브랜치로 옮겨진다.
오늘은 git workflow와 branching 에 대하여 공부하였다.
내일은 modern javascript에 대하여 공부한다.
오늘은 여기까지~!