본문 바로가기

기타/git을 사용한 버전 관리

[Git을 사용한 버전 관리-정리] Git 가지치기(branch, merge, conflict)

목표

 1. Git에 branch를 만들 수 있음

 2. 여러 작업을 독립적으로 진행할 수 있음

 3. branch의 내용을 merge할 수 있음


1. Git branch (깃 브랜치)

 독립적으로 어떤 작업을 진행하기 위한 개념.

 각 branch는 완전 독립으로, 다른 branch의 영향을 받지 않음

 

1)Git branch 종류

 -main branch: 배포 가능한 수준의 안정적인 branch

 -topic branch: 단위 작업 위한 branch (ex. 개발용)

 

2)Git branch 생성

git branch 브랜치이름

 **master branch: repository의 최초 branch

 

3)Git branch 전환

 현재 branch 확인

git branch

 branch 전환 (HEAD 포인터가 이동)

git checkout 브랜치이름

 

4)Git navigation

 'git log' 명령어로 확인한 snapshot 넘나들 때 사용 = 과거 파일 내용 확인 가능

git chechout <snapshot hash>
2. Fast-Forward

working directory에서 한 branch에 새로운 정보를 넣어 commit하게 되면 새로운 체크포인트가 생성되는데, 이 새로운 체크포인트에 이동한 branch에서 master branch에 새로운 내용만 추가 되는 것을 의미

 

3. merge

 topic branch에서 작업이 끝난 뒤 master branch로 합치는 것

 

방법1) fast-forward

 step1. master branch로 이동

git checkout master

 step2. master branch와 특정 branch 병합, master는 새 체크포인트로 이동

git merge 브랜치이름

 

방법2) 갈라지는 branch

 step1. master branch와 한 topic branch에서 파일을 각각 동시에 수정

 stpe2. commit 그래프에서 파일이 갈라진 것 확인

git log --graph --al

 step3. master branch와 topic branch를 병합, 서로 다른 체크포인트에 있게 됨

 step4. merge된 branch확인

git branch --merged

 step5. 사용 마친 topic branch 삭제

git branch -d 브랜치이름
conflict 해결 

 merge한 두 branch에서 같은 파일을 변경했을 때 충돌이 발생

 

1)conflict 예시

 -예시1: 동일한 파일을 서로 다른 branch에서 내용을 변경하는 경우

 -예시2: 서로 다른 branch에서 같은 파일을 동시에 접근하는 경우

 

 sol)

 step1. 어느 파일에서 충돌이 일어났는지 확인 가능

  git status

 step2. 원인 파일을 열어 어떤 branch에서 수정한 내용을 사용할 것인지 결정

 step3. 원인 파일 내 기호 삭제

 step4. 수정 완료 후 add, commit한 뒤 다시 merge

 

2)git merge conflict 방지

 -master branch의 변화를 지속적으로 가져와서 충돌이 발생하는 부분을 제거


본 포스팅은 elice의 'Git을 사용한 버전관리' 의 2강을 듣고 정리한 내용입니다.