지난 개시글에 이어서 이번에는 git branch 위주로 설명하고자 합니다.
목차
· git branch란?
· git merge
- fast-foward
- 갈라지는 branch
- merge conflict(충돌) 해결
1. git branch란?
git branch란, 독립적으로 어떤 작업을 진행하기 위한 개념을 말합니다. 각각의 branch는 다른 branch의 영향을 받지 않으며, 이를 활용하여 협업, 백업, 테스트 등 다양하게 활용할 수 있습니다.
git branch는 크게 두 종류로 나누어지는데,
1. 메인 branch
: 배포할 수준인 안정적인 branch
2. 토픽 branch
: 기능 추가 또는 버그 수정과 같은 단위 작업을 위한 branch
<코드 정리>
git branch 브랜치이름
: 브랜치를 생성한다.
git branch
: 현재 브랜치 목록과 위치하고있는 브랜치를 알 수 있다.
git checkout 브랜치이름
: 해당 브랜치로 전환한다.
: checkout 뒤에 git log으로 확인한 snapshot값을 입력 시, 과거 파일 내용을 확인할 수 있음
3. git merge
추가로 생성한 branch를 a라고 하면, a의 작업물을 master로 적용하는 것을 git merge라고 합니다. 여기서는 크게 기존의 branch에서 추가적인 작업을 한 이후 적용하는 경우와, 각각의 branch에서 같은 파일의 내용을 다르게 수정한 후, 이를 적용하는 경우가 있습니다.
3-1. fast forward
a에서 작업하던 내용을 master와 적용하고 싶을 때(master에서 branch를 따와 추가적인 작업만 한 경우) 사용하게 됩니다. 이를 fast forward라고 합니다.
<코드 정리>
git merge 브랜치이름
: 현재 속해있는 브랜치에 해당 브랜치이름의 내용을 적용
: ex) master 브랜치에서 git merge a 입력 시 a브랜치 내용이 master로 적용됨
3-2. 갈라지는 branch
각각의 branch에서 같은 파일의 내용을 다르게 수정할 경우, 이를 후에 적용하는 과정입니다. 여기서 각각의branch는 서로 영향을 받지 않으므로, 여러 작업을 동시에 진행할 수 있다는 장점이 있습니다.
<코드 정리>
git log --graph --all
: commit graph를 확인할 수 있다.
: --pretty=oneline 옵션을 추가하면 더 깔끔하게 볼 수 있음
git merge 브랜치이름
: 현재 속해있는 브랜치에 해당 브랜치이름의 내용을 적용
: ex) master 브랜치에서 git merge a 입력 시 a브랜치 내용이 master로 적용됨
git branch --merged
: merge 된 branch를 알 수 있다.
git branch -d 브랜치이름
: 사용완료한 브랜치를 삭제할 수 있다.
3-2-1. merge conflict(충돌) 해결
갈라지는 branch에서 같은 파일의 동일한 부분을 수정한 경우 나타나는 오류입니다. git merge하는 도중에 발생하며, 이를 해결하려면 우선 git status로 문제가 되는 파일을 확인합니다. 그 후 해당 파일을 들어가면,
<<<<<<<
(코드 내용)
=======
(코드 내용)
>>>>>>>
이런 식으로 나와있는데, ======= 위의 내용이 merge당하는 쪽의 코드이며, 아래는 그 반대이므로 둘 중 하나를 골라서 사용하거나 모두 수정한후 merge하면 정상적으로 작동하게 됩니다.
'git' 카테고리의 다른 글
4. vi 편집기 (0) | 2021.01.09 |
---|---|
3. Git remote, push (0) | 2020.12.20 |
1. Git(add, commit), Github (0) | 2020.12.20 |
댓글