[GIT] Git Merge (브랜치 병합)

MJ·2022년 8월 11일
0

GIT

목록 보기
16/33
post-thumbnail

Branch Merge

각각의 개발자마다 독립적인 저장소 branch에서 작업이 끝나서 하나의 branch
병합하려고 합니다. branch들을 병합시켜주는 명령어에 대해서 알아보겠습니다.

나뉘어진 브랜치들의 공통적인 부모 브랜치를 base라고 합니다.


💡 Merge

  • branch를 병합하는 명령어
  • 병합된 branch들은 새로운 커밋으로 저장 됩니다
git merge [브랜치 명]
# 명령어를 사용하는 브랜치에서, merge에 해당하는 브랜치를 병합 합니다.
# 현재 브랜치의 위치가 main 이라면, 브랜치명에 해당되는 branch를 병합하여 main branch에 커밋 합니다.

git merge --squash [브랜치 명]
# 한 브랜치의 이력(저장소)을 압축하여 다른 브랜치의 최신 커밋 하나로 만드는 방법

git merge cherry--pick [커밋명]
# 다른 브랜치에서 하나의 커밋만을 가져와 현재 브랜치에 적용 한다.



📦 서로 다른 파일을 병합

서로 다른 파일을 갖고 있는 브랜치들을 병합하는 방법을 알아보겠습니다.
병합된 브랜치는 서로 다른 브랜치들의 모든 파일을 저장 합니다.


1. 작업환경 구성
1.1 메인(master) 브랜치에서 1개의 파일을 생성 후 커밋하고, 새로운 브랜치를 생성
1.2 브랜치가 만들어지고 나면, 새로운 1개의 파일을 다시 생성
( 모든 작업은 main 브랜치에서 진행 )


2. 생성한 브랜치로 이동 후 파일 생성


3. 브랜치간의 병합, 생성된 o2 브랜치를 main 브랜치로 병합


번외. 서로 다른 브랜치에서 commit을 하다보면, 어떤 브랜치에서 commit 했는지 착각할
수 있습니다. 아래 이미지를 확인 해보면, git log 명령어를 사용하면 각자의 브랜치에서
커밋한 기록들은, 따로 구분되어 표시되는 것을 볼 수 있기 때문에 여러 브랜치를 사용하는
저장소라면 git log--graph 기능을 사용하세요.

위 이미지는 예제와는 상관없습니다. 브랜치를 이해하기 위해서 여러 시행착오를 거친 이미지에요.



📦 같은 파일의 다른 부분을 병합

서로 다른 브랜치에서 같은 파일의 내용을 다르게 수정하고, 수정한 부분의 파일을 병합하는
방법을 진행 해보겠습니다.


1. 예제 진행전에, 이전에 했던 저장소를 초기화 해주세요. ( git init )
main 브랜치에서 하나의 파일을 생성 후, 브랜치 1개를 생성 합니다.


2. 생성된 브랜치와 main 브랜치에 있는 동일한 파일에서 서로 다른 부분을 수정


3. 결과 확인



📦 같은 파일의 같은 부분을 병합 ❗ 충돌

git은 파일을 병합할 때 같은 파일의 같은 부분을 수정하면 충돌합니다.
이러한 오류를 conflict 라고 합니다. 오류가 발생했을 때 대처 방법을 살펴보겠습니다.


1. 서로 다른 브랜치에서 같은 파일안에 같은 부분을 수정 합니다.


2. main 브랜치에서 o2 브랜치를 병합합니다.


3. 충돌 해결
사진에는 없는데, git add . 이후에 git commit을 진행 했습니다

profile
프론트엔드 개발자가 되기 위한 학습 과정을 정리하는 블로그

0개의 댓글