개발새발 블로그

git/github 3장 <깃과 브랜치> 본문

git

git/github 3장 <깃과 브랜치>

복지희 2023. 3. 25. 22:24

브랜치 : 같은 뿌리지만 서로 다른 역사를 가지고 있는 버전들.

          ex) 고객사마다 다른 내용들을 추가해야할 때 사용

충돌 : a.txt라는 내용을 동시에 같은 부분을 수정했으면 충돌이 났기 때문에 수동으로 수정해달라고 요청함.

 

+) git log 한눈에 보는 명령어

 

1. 브랜치 기본 사용

git branch : 브랜치 목록 보여줌

master라고 나타나는데,

저장소를 만들면 기본적으로 master 브랜치가 만들어지고, 우리는 그동안 master 브랜치에서 작업하고 있던것.

 

▶ git branch apple : apple의 브랜치 만들기

git branch로 다시 확인해보면 앞에 별표가 있는 master에서 작업중이라는 뜻.

 

새로운 버전 만든 후 git log 확인해보면 HEAD -> master로 가있음.

-> master만 새로운 버전 저장되었고 현재 master에 있음

 

▶ git checkout apple : head를 apple 로 바꾸기(apple 버전으로 돌아가기)

HEAD -> apple

파일 내용도 수정됨.

git checkout master 하면 다시 master 시대로 돌아감.

 

브랜치 apple로 옮긴 후 새로운 파일 저장후 git log

work 3가 부모고 그 위로 master work 4와 apple work 4
work3를 부모로 4개의 커밋이 추가로 생김

 

2. 병합 merge

apple의 내용이 master에도 유용할것같아서 병합시키기.

- base : 브랜치들의 공통 조상

- merge commit : apple과 master을 병합한 커밋

<서로 다른 파일 병합>

현재 상태에서 master에 o2 브랜치를 병합하려함. (02 브랜치의 내용을 master에 합치겠다)

1. master 상태여야함.

2.  git merge o2 : master에 o2 합치기

--> master 파일에 master.txt , o2.txt 모두 생김!

<같은 파일 다른부분 병합>

현재상태. 다른 부분 수정함

o2의 내용을 master에 병합하려고함.

-> master 상태에서 merge하기

두개의 내용

<같은 파일 같은 부분 병합 - 충돌>

현재상태. 같은 부분 수정함

o2의 내용을 master 에 병합하려고 함.

충돌 발생
충돌 후 상황

1. nano에서 내용 직접 수정해준 후

2. 다시 직접 커밋해주기