카테고리 없음

git_Branch Merge,conflict (local)

멍주다배 2024. 12. 23.

Branch Merge

각 branch에서 작업한 후 커밋을 합치기 위해 merge 명령어 사용

merge를 할 때, 서로 다른 커밋에서 동일한 파일을 수정한 경우 conflict 발생 -> 직접 수정해야 함

main에서 branch를 합쳐야 함!

Fast-Forward (ff) Merge

변경 이력이 같아서 단순히 앞으로 이동시켜서 merge

  • main에서 feature-A를 합치기
    • git merge freature-A

merge 하면 Fast-forward 방식으로 됐다는 걸 보여줌

 

3-Way Merge (Merge Commit)

변경 이력이 달라서 새로운 병합 커밋을 발생시키면서 merge

  • 갈래가 생기기 때문에 새로운 커밋(merge commit)을 하나 생성하면서 합치기
    • git switch feature-B
  • main에서 feature-B를 합치기
    • git merge freature-B
CLI에서 파일 만들고 편집하기

touch 파일이름.py
vi 파일이름.py

 

conflict 발생, 처리

  • 브랜치 두 개 만들기
    • git switch -c feature-C
    • git switch -c feature-D
  • (현재 위치: feature-D) feature-D에서 a.py 파일 수정
  • git add, commit
  • git switch feature-C
  • (현재 위치: feature-C)  feature-C에서 a.py 파일 수정
  • git add, commit
  • (현재 위치: main) git switch main
    • git merge freature-C
    • git merge freature-D ->  충돌 발생⭐

a.py 파일에 conflict 발생

  • a.py 파일이 가져야할 최종 상태 (코드)를 만들고 저장
  • git add commit
  • git log (커밋 상태 확인)

freature-C에서 a.py파일 업데이트 했고, main에 feature-C와 D가 merge 됨