본문 바로가기
Do it!

[003] Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문

by Kimpeep 2021. 7. 4.

03-1 브랜치란?

브랜치가 필요한 이유

A > B > C > D ... 이후 각 고객사별로 버전 관리를 따로 진행해야 할 때가 있다. 

그럴 때, 각 고객사별로 D-1, D-2... 등 구분하여 버전 관리를 진행할 수 있지만, 이 과정은 효율적이지 않다. 이때 이 과정을 보다 원활하게 진행할 수 있게 하는 것이 바로 '브랜치'이다.

 

브랜치 기능 살펴보기

깃으로 버전 관리를 시작하면 기본적으로 master이라는 브랜치가 만들어진다. 사용자가 커밋을 진행할 때마다, master 브랜치는 최신 커밋을 가리킨다. 

새로운 브랜치를 만드는 것을 '분기'라고 이야기하며, 기존에 저장한 파일을 master 브랜치에 그대로 유지하며 새 기능을 구현할 수 있게 한다.

분기를 마친 작업을 기존 브랜치에 다시 합칠 수 있다. 이는 '병합'이라고 부른다. 

 

03-2 브랜치 만들기

실습 상황 설정하기

교재를 그대로 따라갔다. 여기까지는 2장과 다른 점이 없다.

 

새 브랜치 만들기

깃에서 브랜치를 만들거나 확인하는 명령은 git branch이다.

애플, 구글, ms 그리고 master 총 4개의 브랜치를 생성하였다.

 

브랜치 사이 이동하기 - git checkout

교재에 있는 내용을 그대로 따라갔다.

 

03-3 브랜치 정보 확인하기

새 브랜치에서 커밋하기

교재에 있는 내용을 그대로 따라갔다.

--branches 옵션을 사용하면 각 브랜치의 커밋을 함께 볼 수 있다.

--graph 옵션을 사용하면 브랜치와 커밋의 형태를 그래프 형태로 볼 수 있다.

 

브랜치 사이의 차이점 알아보기

git log master..apple처럼 브랜치 이름 사이에 마침표 두 개(..)를 넣으면 차이점을 쉽게 알아볼 수 있다.

 

03-4 브랜치 병합하기

서로 다른 파일 병합하기

git init 디렉터리 이름 : 새로운 디렉터리를 만들고 저장소를 초기화

git merge 브랜치 이름 (브랜치 A) : master 브랜치에 브랜치 A를 가져와 병합한다.

ls -al : 브랜치 A에 있던 파일이 master 브랜치에 합쳐짐을 볼 수 있음

 

같은 문서의 다른 위치를 수정했을 때 병합하기

master 브랜치에 work.txt 생성 > o2 브랜치에 work.txt 생성 (work 1 커밋)

checkout > master 브랜치 work.txt 수정, checkout > o2 브랜치 work.txt 수정

checkout master, merge o2 => master로 체크아웃, o2 브랜치 master 브랜치로 끌어오기

 

같은 문서의 같은 위치를 수정했을 때 병합하기

work.txt를 자동 병합하는 동안 conflick이 발생한 경우이다. (같은 라인에 다른 내용이 작성된 경우)

충돌이 생긴 문서는 자동으로 병합될 수 없고, 직접 충돌 부분을 해결해야 한다.

<<<<<<<HEAD, =========, >>>>>>>> o2 등으로 내용이 다르게 나와 있다. 양쪽 브랜치의 내용을 참고하여 vim 에서 직접 내용을 수정해야 한다.

 

병합이 끝난 브랜치 삭제하기

git branch -d 브랜치 이름 : 브랜치를 삭제하는 명령어이다. 

 

03-5 브랜치 관리하기

브랜치에서 checkout과 reset의 작동 원리

git checkout 명령은 HEAD가 가리키는 것을 제어할 수 있음. 

git checkout A를 실행하면 HEAD가 A 브랜치를 가리키게 됨.

 

git log --oneline --branches 를 통해 원하는 커밋의 커밋 해시를 확인

git reset 커밋 해시를 실행하면 해당 커밋이 삭제됨

 

수정 중인 파일 감추기 및 되돌리기 - git stash

파일을 수정하고 커밋하지 않은 상태에서 다른 파일을 커밋해야 할 경우, 파일을 감춰둘 수 있음

stash 명령을 사용하려면 파일이 tracked 상태, 즉 한 번은 커밋한 상태여야함

파일을 수정한 뒤, modified 상태임을 확인

이후 git stash 명령 사용 > modified 메시지 사라짐

git stash list에서 감춘 파일들을 찾을 수 있음. 먼저 감출 수록 숫자가 커짐. git stack이라고도 불림

git stash pop을 사용하면 가장 최근 항목을 되돌림 (0부터 꺼냄)

 

++ stash 목록에 저장된 수정 내용을 사용할 수도 있다면 git stash apply 명령을 사용함.

댓글