[Git] merge / conflict

Onam Kwon·2022년 6월 17일
0

Git

목록 보기
3/4
post-thumbnail
post-custom-banner

Git

  • git merge: 브랜치 합치기.
    • conflict: main브랜치와 second브랜치에서 중복되는 파일을 수정할 경우 conflict(충돌) 일어남, 이때 개발자가 어떤부분으로 적용할지 판단해서 수정해야한다.
    • 병합의 단위: 브랜치
  • git push: 원격 저장소에 저장.
    • 모든 로컬 저장소를 원격 저장소에 push할 필요는 없다, 유의미할 경우 push.
  • git pull: 원격 저장소에 변경된 내용을 로컬 저장소로 가져옴.

merge

  • second 브랜치에 존재하는 파일은 one two three 세개의 파일이다.
  • four파일을 새로 생성해 준 후 v4라는 메시지로 네번째 커밋을 해준다.

  • second 브랜치의 커밋 로그는 위와 같다.
  • 참고로 main 브랜치의 커밋 로그는 v3까지만 존재.

  • main브랜치로 이동 및 ls명령어를 통해 one two three파일만 존재함을 확인.

  • git merge second 명령어를 통해 main브랜치에서 second를 병합했다.
  • second브랜치에서 생성한 four파일이 병합 후 main브랜치에서도 존재함을 확인할 수 있다.

  • main브랜치에서 커밋 로그를 확인하면 second브랜치에서 커밋한 v4커밋이 새로 생김.

conflict

  • main브랜치와 second브랜치에서 중복되는 파일을 수정할 경우 conflict(충돌) 일어남, 이때 개발자가 어떤부분으로 적용할지 판단해서 수정해야한다.
    • main second브랜치에서 four파일을 둘다 수정 후 병합을 해보도록 하겠다.


  • main브랜치에서 four파일에 modified from main branch라는 내용을 추가한 후 modified four file from main branch라는 메시지로 새로운 커밋.

  • second브랜치에서 four파일에 modified from second branch라는 내용을 추가한 후 modified four file form second branch라는 메시지로 새로운 커밋.

  • main브랜치로 변경 후 git merge second를 실행시키면 충돌이 일어난다.
    • main브랜치의 four파일과 second브랜치의 four파일이 동시에 수정되었기 때문.
    • cat four명령어를 통해 four파일의 내용이 수정되었음을 확인할 수 있다.

  • vi four명령어를 통해 modified from second branch내용만 남겨주고 나머지는 다 지워준다.

  • 수정된 부분을 새롭게 추가해 준 후 커밋해주면 병합이 가능해진다.
    • 위의 화면이 나오면 :wq로 저장해 주면 된다.

  • git log --graph를 통해 두개의 브랜치가 성공적으로 병합된걸 확인할 수 있다.
    • merge의 병합 단위-> 브랜치
profile
권오남 / Onam Kwon
post-custom-banner

0개의 댓글