본문 바로가기
Version Control System/Git

[Git CLI] Branch & Merge

by k-mozzi 2022. 8. 23.
반응형
Preface

 

이번 강의에선 브랜치의 정의와 사용 방법을 알아봤다.

 

생각보다 복잡한 개념이지만 굉장히 효율적이고 신기한 기능인 것 같다.

 

사실 git 강의는 쉬울 것 같아서 하루 이틀 내로 마무리 할 계획이었는데, 예상했던 것 보다 이해해야 할 부분도 많고 암기해야 할 부분도 많다.

 

그래도 터미널에서 커맨드를 통해 파일을 관리하는 것이 나름 재미있다.


 

1. What is Branch?

 

 

- branch: 코드 전체를 복사한 후 각각의 코드를 독립적으로 개발할 때 사용하는 개념

 

 

- git log --all: 모든 브랜치를 볼 수 있다.

 

 

- git log --graph: 정보를 그래프 형태로 시각화한다.

→ 그래프는 각 버전의 부모를 나타낸다.

 

 

- git log --oneline: 버전이 한 줄로 표시된다.

 

 

- git branch: 브랜치의 목록을 보여준다.

 

 

- git checkout 브랜치 이름: HEAD가 해당 브랜치의 마지막 커밋 상태를 가리킨다.

 

 

- base: 병합하려는 파일들의 공통의 조상(branch 분할의 시작점이 되는 파일)

 

 

- merge: 서로 다른 branch에 있는 파일을 하나의 파일 즉 새로운 버전으로 만드는 것

→ 병합된 파일: merge commit

1) 2 way merge

① 두 부분 모두 수정한 경우: 충돌 발생

② 한 부분만 수정한 경우: 충돌 발생

2) 3 way merge(base 파일 포함)

① 두 부분 모두 수정한 경우: 충돌 발생

② 한 부분만 수정한 경우: 수정한 부분 채택

 

 

- git merge 병합할 브랜치 이름: 현재 브랜치와 병합할 브랜치를 합쳐 새로운 버전을 만든다.

→ 병합할 브랜치가 아닌, 기존 브랜치에서 진행해야 한다!

1) 파일명이 다른 경우: 자동으로 병합된다.

2) 파일명이 동일한 경우(같은 파일)

① 서로 다른 부분을 수정한 경우: 자동으로 병합된다.

② 같은 부분을 수정한 경우: 충돌(conflict)이 발생해 git에서 수동으로 수정하라는 메시지를 출력한다.

→ 파일을 수정한 후 'git add 파일명'과 commit 커맨드를 입력하여 재커밋한다.

 

 

- git mergetool: 병합을 해주는 도구

→ 추후 필요할 때 동영상 보면서 세팅하면 될 듯하다.

 

 

- git workflow 검색: 개발자들 사이에서 채택된 브랜치 사용의 모범 사례를 볼 수 있다.

→ git flow: 사례들을 쉽게 적용할 수 있도록 고안된 소프트웨어

 

 

- cherry pick: 병합할 브랜치의 모든 변경사항이 아닌, 특정 버전(부분)의 변경사항만을 가져와 병합할 때 사용할 때 사용

 

 

- rebase: 브랜치 자체를 병합하는 것이 아닌, 병합할 브랜치의 버전들을 현재 브랜치와 일대일로 순차적 병합하는 방법

→ merge와 비슷하지만, 타임라인을 깔끔하게 할 수 있다.

 

 

 

출처: https://www.youtube.com/playlist?list=PLuHgQVnccGMDU5eAzOz2dZ9KXJF6dkNg3 

 

GIT3 - CLI 브랜치 & 충돌

 

www.youtube.com

 

728x90
반응형

'Version Control System > Git' 카테고리의 다른 글

[Git CLI] 협업  (0) 2022.08.29
[Git CLI] 백업  (0) 2022.08.24
[Git CLI] 버전관리  (2) 2022.08.22
POSIX CLI  (0) 2022.08.20
Git 찍먹  (2) 2022.04.29

댓글