Git

[Git 교과서] 8장 병합과 충돌

차노도리 2023. 6. 20. 22:45

병합

  • 분리된 브랜치를 한 브랜치로 합치는 작업

 

자동 병합

  • 원본 기준으로 두 파일의 변경 이력을 비교하여 변경된 파일 내용이 발견되면 자동으로 수정된 코드 내용을 병합
  • 자동으로 반영하지 못하는 것들은 충돌이 발생

 

병합 방식

          • merge
            • fast--forward 병합
              • 브랜치 경로가 일직선일 경우의 브랜치에서 병합 작업을
              • 자식 branch 시작 커밋을 부모 branch 이후의 커밋으로 가리킨다. 
            •  3-way 병합
              • 공통 조상을 가지는 자식branch를병합하는 방식
              • git은 공통 조상 커밋을 자동으로 찾아주며, 공통 조상을 기준으로 branch를 병합한다.
              • 병합을 성공적으로 완료한 새로운 커밋(병합 커밋) 새로 생성한다.
               
          • rebase
            • 시간 순의 순차적 나열이 아닌 기준 브랜치의 마지막 커밋으로 재정렬
            • 브랜치 서로 비교하지 않고 순차적으로 커밋 병합
            • 보통 master or main 브랜치에는 사용하지 않는 것으로 한다.
              • 잘못 활용할 경우 소스 이력이 꼬일 있다.
  •  

충돌

  • 충돌의 원인은 다른 사람과 같은 위치의 코드를 동시에 수정시에 발생
  • 충돌을 해결하면, 파일은 modified 상태가 되는데, 이를 다시 스테이지 영역에 등록하고 병합 커밋을 직접 만들어야 한다.

 

 

'Git' 카테고리의 다른 글

[Git 교과서] 10장 배포 관리와 태그  (0) 2023.07.07
[Git 교과서] 9장 복귀  (0) 2023.06.29
[Git 교과서] 7장 Stash  (0) 2023.06.15
[Git 교과서] 6장-2 Branch  (0) 2023.06.03
[Git 교과서] 6장-1 Branch  (0) 2023.05.27