저번 시간에 이어서 브랜치라는 것을 설명하겠다.
보통 깃 또는 깃허브를 이용하여 사람들과 협업을 같이한다.
혼자 그냥 프로그램을 짜면 상관없겠지만,
팀 단위로 하나의 프로젝트를 진행하게 되면 각자의 역할이 주어지게 된다.
작년에 학교 과제로 소개팅 앱 만들기를 한 적이 있다.
깃허브를 이용해서 한번 협업을 해보자 !! 라고 팀원들과 시작을 하였지만 모두 깃허브를 잘 몰랐기 때문에 내가 작업한 코드가 다른 사람이 push해서 다 날라가고 아주 가관이였다.
결국 깃허브를 포기하고 그냥 노가다로 각자 프로그램 들을 usb로 담아서 옮겼다는..
만약 브랜치라는 개념을 잘 파악하고 있었다면 이러한 대참사는 안일어났을 것이다.
1. 브랜치란?
1편에서 마지막 부분에 커밋한 이전 버전의 환경으로 돌아가는 방법을 배웠다. 그때는 해시값을 일일이 입력해서 변경을 했지만 브랜치라는 개념을 이용하면 간편하게 변경할 수 있다.
홈페이지를 만들기 위해 메인화면을 만들고 (아직 회원가입, 게시판 기능구현은 안한 상태) 깃에다가 저장을 했다고 하자.
처음에 만든 메인화면 코드에 이어서 회원가입, 게시판을 다이렉트로 구현하는 것이 아닌, 혹시모를 경우를 대비하여 메인화면이라는 하나의 큰 틀을 기준으로 이를 복사하여 회원가입 구현부분, 게시판 구현 부분 이렇게 총 3개의 작업으로 나눠서 개발을 하는 기능이 바로 브랜치라는 것이다.
즉 메인 브랜치(마스터 브랜치), 회원가입 브랜치, 게시판 브랜치 이렇게 나눈다. 그리고 마지막에 회원가입 브랜치와 게시판 브랜치를 메인 브랜치에 합쳐서 최종 홈페이지를 구현하면 된다.
요런 느낌으로다가 가장 먼저 마스터 브랜치를 만들고 현재 상태를 고대로 복사하여 회원가입 브랜치로 만든다음 회원가입 기능을 구현하고, 똑같이 게시판 브랜치도 만든다.
이렇게 만든 주황색 브랜치와 초록색 브랜치를 마지막에 마스터 브랜치에 합치는 것이다. !!
이렇게 되면 코드가 충돌날 일이 없고, 효율적인 협업이 된다.
2. 브랜치 만들어보기
1) 현재 브랜치 상태 확인하기
명령어 : git branch
git branch를 입력하면 다음과 같은 화면이 나온다. HEAD 라고 표시되어 있는 건 c언어 포인터 같은걸로 생각하면 되는데 이게 지금 마스터 브랜치를 가리키고 있다. (abbbffe이게 마스터 브랜치를 가리키고 있음. 즉 현재 브랜치는 마스터 브랜치를 가리키고 있음).
따라서 왜 master를 가리키고 있지 않지? 라고 생각하면 안된다. 다음 명령어를 통해서 확실하게 확인해보자.
2) 브랜치 변경
명령어 : git checkout"변경할 브랜치 이름"
git checkout master를 입력하면 마스터 브랜치로 작업을 변경한다 ! 라는 뜻이다. 바로 위에서 확인한 결과와 보이는 건 다르지만 위에서도 현재 마스터 브랜치를 head가 가리키고 있기 때문에 브랜치의 변경은 없다.
3) 브랜치 생성
명령어 : git branch "브랜치 이름"
회원가입 기능을 구현할 브랜치인 sign_up_branch를 만들고 결과를 확인해보면 다음과 같다. 새로운 브랜치가 생성된것을 알수 있는데 아직 작업하고 있는 브랜치는 master 브랜치이다.
4) 브랜치 변경
명령어 : git checkout sign_up_branch
작업 브랜치가 변경된 것을 확인 할 수 있다. 그럼 이제 HEAD는 sign_up_branch를 가리키게 된다. 이렇게 회원가입 기능을 구현함에도 마스터 브랜치는 초기에 생성한 환경을 계속 유지하게 된다.
다 구현을 끝맡치면 git merge sign_up_branch 를 입력하여 마스터 브랜치에 합치면 된다. 그럼 마스터브랜치에는 회원가입 기능이 추가가 되는 고런 구조이다.
3. 깃허브란?
지금까지 git에 대해서 알아보았다. git은 로컬환경에서 버전관리를 도와주는 프로그램이다. 이제 로컬 저장소에서 하는 것이아닌, 원격 저장소에 저장하여 사람들과 협업도 가능하고, 언제 어디서나 버전관리를 할수 있는 깃허브를 알아보자.
매우 간단하다. 깃허브에 들어가서 새로운 레포지토리를 만들자.
gittest라는 이름으로 레포지토리를 만들면 다음과 같은 화면이 나온다.
그다음 리눅스에 가서 레포지토리를 복사해 온다.
명령어 : git clone https://github.com/vhok74/gittest.git
그다음 1편 포스팅에서 했던 과정을 그대로 거쳐보자.
1. hello.txt 파일 만들기
2. git add hello.txt
3. git commit hello.txt -m "first commit"
그럼 지금 로컬 git 저장소에 hello.txt 파일이 저장된다. 이제 원격 저장소에 올리기 위해서 다음의 명령어를 쳐보자.
git push origin master
그럼 완료되었다고 뜬다!! (git push 뒤에 origin master는 초기에 한번만 해주면 됨. 그 다음부터는그냥 git push만)
깃허브에 올라갔는지 확인해보자.
잘 올라간것을 확인할 수 있다.
지금까지 깃과 깃허브를 알아보았는데, 매우 기초적인 내용을 다뤘다. 더 들어가면 복잡한 내용이 많지만 이정도 개념을 잡으면 응용하거나 하는 것은 금방 할 것이다.
그럼 20000
'컴퓨터 관련 과목 > 기타' 카테고리의 다른 글
git 쉽게 이해하기(1) (0) | 2019.07.06 |
---|