[Git] branch, merge 그리고 conflict

코르피·2022년 8월 17일
0
post-thumbnail

깃에대해 이해를 하기 위해서 열심히 구글링하고 익혔다.
정리해 두지 않으면 미래에 또 까먹고 힘들테니 정리를 해두자!

Git Branch

깃 브랜치를 만드는 방법이다
기본적으로 git branch [브랜치 이름]을 하면 생성된다.
중복일 경우 앞에 경로를 붙여서 구분도 한다.

branch는 나뭇가지라는 뜻인데 왜 나뭇가지인지 이번에 좀 더 깊게 이해하게 된 것 같다.

  • git init으로 시작을 한다. 깃의 커밋정보나 깃관련 파일들이 저장되는 폴더이다. 필수!

최초로 깃 브랜치를 만들기 위해서는 기본 파일이 먼저 커밋되어 있어야 한다.

  • touch main.txt 명령으로 파일을 만들어준다
  • add 및 commit
  • 자동으로 master 라는 브랜치가 생긴다
  • 메인 브랜치를 자기가 원하는 브랜치명으로 하고싶다면
    • git branch -M main

A작업을 하는 브랜치 생성

  • git branch Awork 명령어로 Awork 브랜치를 생성했다.
  • git switch Awork 명령어로 브랜치를 전환한다.
  • touch a.txt 로 파일 생성 한 후 커밋
    • a작업 진행중 문구 작성

Git merge

main 브랜치에서 작업한 b.txt작업과 Awork 브랜치의 a.txt를 merge

  • b.txt 내에는 b작업 진행중 문구 작성

  • git merge Awork 문구로 머지!
  • merge도 커밋이기 때문에 커밋 문구를 작성하는 창이 열림
    • :wq로 저장후 나가기
  • 머지완료!

conflict

main 브랜치에 있던 main.txt 파일과
Awork 브랜치에 있던 main.txt 파일을
각각 수정하면 merge시에 conflict가 남!


conflict가 예상이 되면 이런 창이 뜨는 듯 하다

  • main 브랜치에서 main.txt를 작업한 모습
  • Awork 브랜치에서 main.txt를 작업한 모습

CONFLICT!!

  • 같은 파일을 각각 다른 브랜치에서 작업했기 때문에 충돌이 일어남

🤔 해결하려면?

  • 해결하는 방법은 두가지
    1. 현재 main 브랜치에 main.txt 파일이 저렇게 작성되어 있으므로 원하는 값만 작성한 뒤 새로 커밋한다. (머지를 하지 않고 값을 복사 붙여넣기 해와서 독자적인 길을 간다는 느낌)
    2. Awork 브랜치에서 main 브랜치의 main.txt를 가져와서 작업을 한다.
      2-1. git checkout main -- main.txt 명령어 사용
      2-2. Awork 브랜치 의 main.txt 내의 값을 수정해서 커밋하는 느낌이라 머지가 가능
profile
행복합시다!!

0개의 댓글