이번에는 버전 관리 도구인 git을 사용해 팀원들과 협력하는 방법을 알아볼 것이다.
우선 git에 대해서 모른다면 Git과 GitHub은 무엇일까? 글을 먼저 보고 오자.
Git을 이용하려면 두 가지 방법이 있다.
- SourceTree라는 GUI 툴을 이용한 방법
- 터미널에 git 명령어를 직접 입력하는 방법
git 명령어를 사용해 관리하는 방법도 유용하지만 초보자에겐 명령어 사용이 익숙지 않을 수 있다. 따라서 이번 글에서는 SourceTree를 사용해서 협업하는 방법을 설명하고자 한다. Git을 이용해 협업하는 방식을 설명하는 것이 목표기 때문에 Git과 Github에 대한 자세한 사용법은 설명하지 않는다.
1. test 레파지토리 생성
Github에 테스트를 위한 레파지토리를 생성한다.
레파지토리를 생성할 때는 README 파일을 생성하기를 눌러 기본 커밋이 있는 상태로 생성한다.
2. SourceTree에서 원격 저장소 불러오기
소스 트리를 실행하면 아래와 같은 화면이 나올 것이다.
상단 탭의 [새로 만들기 > URL에서 복제]를 선택한다.
원본 URL에는 저장소 URL을 적고, 목적지 경로에는 소스를 내려받을 로컬 저장소 경로를 지정해준다.
[클론] 버튼을 누르게 되면 아래와 같은 화면이 나오면서 소스를 내려받게 된다.
3. develop 브랜치 생성
Git으로 소스코드를 관리할 때 보통 branch를 따서 관리한다. 항상 유지되는 메인 브랜치(master, develop)와 일정 기간 동안만 유지되는 보조 브랜치(feature, release, hotfix)가 있다. 좀 더 자세한 내용은 Git 브랜치의 종류 및 사용법 글을 참고하도록 하자. 이번 글에서는 master, develop, feature 브랜치만 다룰 것이다.
기능 개발을 통합적으로 병합할 때 사용하는 develop 브랜치를 생성해보자. 상단의 [브랜치] 항목을 누른 뒤, 새 브랜치 이름에 develop이라고 지정한 뒤 [브랜치 생성] 버튼을 눌러보자.
브랜치를 생성하면 좌측 메뉴에 develop으로 브랜치가 하나 생성된 것을 확인할 수 있다. develop 브랜치는 아직 로컬에서만 생성됐기 때문에 원격 브랜치 항목에는 master 브랜치 밖에 없다.
상단의 푸시 버튼을 누르게 되면 원격에도 develop 브랜치가 생성된다.
Initial Commit에 origin/develop이라는 브랜치가 생성된 것을 확인할 수 있다. 원격에 develop 브랜치가 생성됐다는 뜻이다.
4. feature 브랜치 생성
이제 각 기능에 대해 개발을 담당하는 feature 브랜치를 생성할 차례다. 다시 상단의 [브랜치] 눌러 새 브랜치를 생성한다. 새 브랜치 이름은 feature/test로 지정한 뒤, [브랜치 생성] 버튼을 눌러준다.
브랜치가 생성되면 좌측 메뉴에 새로운 브랜치가 추가된 것을 확인할 수 있다. develop과 마찬가지로 아직 원격에는 푸시하지 않았기 때문에 로컬에만 추가가 되었다.
5. test 브랜치에서 작업
test 브랜치에서 어떠한 작업을 한다고 가정해보자. 어떠한 작업이라 하면 보통 개발에 필요한 태스크를 기준으로 한다.
터미널을 연 뒤 해당 디렉토리로 이동해서 아래의 코드를 입력해 파일을 하나 생성한다.
echo "test" >> test.txt
파일을 생성하면 작업이 추가되었기 때문에 소스 트리에 변경사항을 확인할 수 있다. 소스 트리를 열면 좌측 상단의 [커밋] 버튼에 1이 생긴 것을 확인할 수 있다. 추가로 커밋 메시지란에 Uncommitted changes가 생겼다. 이는 커밋되지 않은 변경 사항이 있다는 뜻이다.
좌측 상단의 [커밋] 버튼을 눌러 변경 사항을 확인해보자. text.txt 파일이 생성되었지만 커밋을 하지 않았으므로 추가되어있다. 변경된 파일을 체크해준 뒤, 아래에 커밋 메시지를 적어준다. 하단의 origin/feature/test(으)로 바뀐 내용 즉시 푸시 항목을 체크하면 원격 저장소에도 바로 커밋된 내용이 올라가게 된다.
[커밋] 버튼을 누르면 커밋이 진행되고, 커밋 로그에 방금 추가한 test commit이 생성된다. test commit은 feature/test 브랜치에서 진행했기 때문에 master 브랜치나 develop 브랜치는 첫 번째 커밋했던 Initial commit에 머무르게 된다.
6. develop 브랜치에 병합
feature 브랜치에서 작업이 끝나면 이제 develop 브랜치에 병합을 해야 한다. develop 브랜치는 배포가 되기 전에 종합적으로 테스트를 해보는 브랜치다. 팀원들과 협업을 할 때 각각 feature 항목에서 브랜치를 생성한 뒤, 작업을 마치고 develop 브랜치로 병합하게 된다. 각자 개발한 기능을 develop 브랜치로 합쳐서 통합해서 테스트를 하게 된다. 테스트가 마치면 master 브랜치로 병합시켜 배포하게 된다.
develop 브랜치로 병합하기 위해 현재 브랜치를 develop으로 변경한다. 좌측 메뉴에서 develop을 더블 클릭하면 변경된다.
이제 feature/test 브랜치와 develop 브랜치를 병합해준다. 상단 메뉴의 [병합] 버튼을 누른 뒤, 아래 사진처럼 빨간 네모 박스 안의 값을 feature/test로 변경해준다. feature/test 브랜치를 골라서 병합을 해준다는 뜻이다.
[확인] 버튼을 누르면 develop 브랜치가 feature/test 브랜치와 병합되게 된다. 여기서 [푸시] 항목에 1이 생긴 것을 확인할 수 있는데, 이것은 원격 저장소의 develop과 로컬 저장소의 develop의 커밋 로그가 달라서 푸시할 내용이 있다는 뜻이다. 아래의 커밋 로그를 보면 origin/develop 브랜치의 가장 최신 커밋은 Initial commit이고, develop 브랜치의 최신 커밋은 test commit임을 알 수 있다.
[푸시] 항목을 누르면 origin/develop 브랜치의 최신 커밋도 test commit이 된다.
위와 같은 방법으로 develop 브랜치에서 테스트가 끝나면 마지막으로 master 브랜치로 병합하여 배포가 이루어지게 된다. 예제에서는 feature 브랜치가 1개뿐이라서 git 그래프가 단순하게 나왔지만, feature 그래프가 여러 개라면 아래 사진처럼 예쁜 그래프를 볼 수 있을 것이다.
'Git' 카테고리의 다른 글
[Git] Github에서 토큰 인증 로그인 (0) | 2021.08.17 |
---|---|
[Git] Git Submodule에 대하여 (0) | 2020.12.25 |