티스토리 뷰
반응형
이 문서는 "지옥에서 온 문서 관리자 깃&깃허브 입문 - 이고잉, 고경희 지음" 책의 내용을 정리한 것입니다.
03. 깃과 브랜치
03-1 브랜치란?
브랜치 기능 살펴보기
브랜치는 커밋을 가리키는 포인터와 비슷하다고 생각하면 된다.
기본적으로 master 브랜치가 생성되는데 사용자가 커밋할 때마다 master 브랜치는 최신 커밋을 가리킨다.
분기(branch)
- 새 브랜치를 만들면 기존에 저장한 파일을 master 브랜치에 그대로 유지하면서 기존 파일 내용을 수정하거나 새로운 기능을 구현할 파일을 만들 수 있음
- 새 브랜치를 만드는 것 = '분기(branch)한다'
병합(merge)
- 새 브랜치에서 원하는 작업을 다 끝내면 새 브랜치에 있던 파일을 원래 master 브랜치에 합칠 수 있음
- 분기했던 브랜치를 master 브랜치에 합치는 것 = '병합(merge)한다'
03-2 브랜치 만들기
새 브랜치 만들기 - git branch
# 브랜치 확인
$ git branch
# 새 브랜치 생성
$ git branch <브랜치명>
- git branch 명령으로 브랜치를 확인했을 때, 앞에 * 표시가 있는 브랜치가 현재 작업 중인 브랜치
- 브랜치가 추가된 후에는 커밋 로그도 달라짐
브랜치 사이 이동하기 - git checkout
# 브랜치 이동
$ git checkout <이동할 브랜치명>
분기된 이후에 기존의 브랜치에 추가된 커밋은 새로운 브랜치에 영향을 미치지 않음
03-3 브랜치 정보 확인하기
브랜치의 커밋 확인하기
# 각 브랜치의 커밋 확인
$ git log --oneline --branches
# 각 브랜치와 커밋의 관계를 그래프 형태로 표시
$ git log --oneline --branches --graph
※ --oneline 옵션은 한 줄에 한 커밋씩 나타냄(간략히 확인하기 편리)
브랜치 사이의 차이점 알아보기
# master 브랜치와 apple 브랜치 사이의 차이점 확인
$ git log master..apple
- 브랜치 이름 사이에 마침표 두 개(..)를 넣음 (공백 X!)
- 마침표 왼쪽에 있는 브랜치를 기준으로 오른쪽 브랜치외 비교
- ex) master 브랜치에는 없고 apple 브랜치에만 있는 커밋 출력
03-4 브랜치 병합하기
만들어진 각 브랜치에서 작업을 하다가 어느 시점에서는 브랜치 작업을 마무리하고 기존 브랜치와 합해야 합니다. 이것을 '브랜치 병합(merge)'이라고 합니다.
서로 다른 파일 병합하기
# 브랜치 체크아웃
$ git checkout master
# 브랜치 병합
$ git merge <병합할 브랜치명>
# 브랜치 병합 - 편집기 창을 열지 않고 자동 커밋 메시지 그대로 사용
$ git merge <병합할 브랜치명> --no-edit
# 브랜치 병합 - 편집기 커밋 메시지를 추가하거나 수정
$ git merge <병합할 브랜치명> --edit
# 브랜치 병합 확인
$ git log --oneline --branches --graph
- 다른 브랜치의 내용을 master 브랜치로 병합할 경우, master 브랜치로 체크아웃 필요
- 병합 시, 자동으로 vim이 실행되면서 커밋 메시지가 나타남
※ master 브랜치에서 브랜치를 분기한 후에 master 브랜치에 아무 변화가 없다면(새로운 커밋을 만들지 않았다면) 분기한 브랜치를 병합하는 것은 간단하기 때문에 '빨리 감기 병합(fast-forward merge)'라고 부름 (분기한 브랜치에서 만든 최신 커밋을 master 브랜치가 가리키게만 하면 되기 때문!)
같은 문서의 같은 위치를 수정했을 때 병합하기
- 깃에서는 줄 단위로 변경 여부를 확인
- 각 브랜치에 같은 파일 이름의 같은 줄을 수정했을 때 브랜치를 병합하면 브랜치 충돌(conflict)이 발생
- 충돌이 발생할 경우, 해당 파일의 내용을 직접 수정해야함
- 병합 및 충돌 해결 프로그램을 사용해도 됨(ex: P4Merge, Meld, Kdiff3, Araxis, Merge)
병합이 끝난 브랜치 삭제하기
브랜치를 병합한 후 더 이상 사용하지 않는 브랜치는 깃에서 삭제 가능
※ 삭제된 브랜치는 완전히 지워지는 것이 아니라 다시 같은 이름의 브랜치를 만들면 예전 내용을 다시 볼 수 있음
# 브랜치 확인
$ git branch
# 브랜치 체크아웃
$ git checkout master
# 브랜치 삭제
$ git branch -d <삭제할 브랜치명>
- master 브랜치에 병합하지 않은 브랜치를 삭제할 경우에는 오류 발생 -> -D 옵션을 사용해 강제로 삭제 가능
반응형
'개발도구 > Git' 카테고리의 다른 글
[Git] GitLab Beginner Tutorial 1 | Introduction and Gettig Started (0) | 2020.07.20 |
---|---|
[Git] Ubuntu 16.04에서 Git LFS(Large File Storage) 사용법 (2) | 2020.07.20 |
[Git] (도서) 깃&깃허브 입문: 02. 깃으로 버전 관리하기 (0) | 2020.02.28 |
[Git] (도서) 깃&깃허브 입문: 01. 깃 시작하기 (0) | 2020.02.21 |
[Git] 원본 저장소 fork 및 동기화 (0) | 2019.03.05 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 코딩테스트
- 하이퍼레저 패브릭
- 코테
- 빅데이터
- 빅데이터 강의
- 하이퍼레저 페브릭
- Hyperledger Fabric v1.2
- DOCs
- codility
- 암브로셔스
- javascript
- 하이퍼레저 인디
- docker
- 기초 of 기초 데이터 개념
- Hyperledger Fabric v1.1
- 코딜리티
- ambrosus
- 알고리즘
- Hyperledger Fabric
- Hyperledger Indy
- 문제풀이
- 직딩잇템
- 빅데이터 교육
- 빅데이터 기초
- 블록 체인
- Private Data
- 블록체인
- Blockchain
- ubuntu
- 어서와 데이터는 처음이지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함