ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [git] branch 생성하기, merge와 conflict 해결
    Tools/Git & Github 2023. 1. 30. 21:14

     

    프로젝트에 기능을 추가하고 main에 commit을 한다. 만약 그 코드가 완성되지 않은 코드라면,,? 예를 들어 회사에서 작업하고 집에서 하고싶은데, 작업하던 코드를 날릴 순 없으니 (혹여나) 기록은 해야겠고,, 그렇다고 main branch에 할 순 없고 이럴 때 생성하는 게 바로 branch다.! 

     

     

    📑 브런치 생성 후 commit

     

    새로운 branch 생성한 다음에 현재 브런치에서 새로운 브런치로 변경하기

     

     

    git gtatus로 현재 상태를 보면 on branch 새로만든 브런치인 걸 확인할 수 있다. 여기서 파일을 하나 새로 만든 다음 add 후 commit한 후 다시 main branch로 이동하면 새로만든 브런치에서 commit한 파일이 사라지는 걸 확인할 수 있다.

     

     

     

     

    📑 브런치 merge

     

     

    그럼 main에서 commit한 것과 서브 브런치에서 commit한 걸 합치고 싶다면 ?? 

     

    만약 다른 파일에서 각각 수정과 기록을 했다면 merge했을 때 충돌이 나지 않는다. 근데 만약 같은 파일을 각각의 branch에서 수정 후 commit을 해뒀다면 어떻게 될까? 

     

     

    일단 main 브런치로 switch를 하고 git merge '합병할 브런치 이름'을 입력하면 !!!! cinflict가 발생한다. 

     

     

     

    그럼 다음과 같이 충돌이 일어나는 파일에서 각각 브런치에서 commit한 내용이 뜬다.  그럼 이렇게 충돌나는 부분 중 더 마음에 드는 코드를 두고 나머지는 지운 후 다시 add , commit하면 merge가 완료된다.                              

     

     

     

     

    위 포스팅은 코딩애플을 보고 공부중인 내용을 정리한 것이다. 

     

     

     

    만약 merge 후 서브 브런치 내역을 삭제하고 싶으면 squash and merge를 하면 된다. 그럼 연결돼 있던 선이 사라짐. 

     


     

    우리가 merge한 내용을 3-way-merge이다. 근데 이렇게 하다보면 나중에 graph나 history가 매우 더러워짐.. 따라서 여러 방법이 있는데 일단 지금은 이런 게 있구나 알고만 넘어가자. 

     

     

     

     

     

    반응형

    댓글

Designed by Tistory.