목표
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강을 듣고 정리한 내용입니다.
'기타 > git을 사용한 버전 관리' 카테고리의 다른 글
[git] 삭제된 폴더, 파일 반영하기 (0) | 2022.01.05 |
---|---|
[Git을 사용한 버전 관리-정리] Git 시작하기 (0) | 2020.06.04 |