Git/GitHub: Conflict 사용하기

오늘은 Git/GitHub에서 프로젝트를 진행하면서 자주 마주치게 되는 'Conflict'에 대해 좀 더 깊이 알아보겠습니다. 'Conflict'는 여러 사람이 동시에 같은 코드를 수정하다 보면 발생할 수 있으며, 이를 잘 해결하는 것이 협업의 중요한 요소입니다.
1. Git Conflict란?
Git에서 'Conflict'는 두 가지 이상의 Branch가 같은 부분을 서로 다르게 수정했을 때 발생하는 문제입니다. 예를 들어, 두 개발자가 동일한 파일의 동일한 줄을 수정하고 각각의 변경사항을 병합하려고 할 때 이런 충돌이 발생합니다.
Git은 어떤 변경사항이 올바른지 결정할 수 없기 때문에, 개발자에게 충돌을 해결하도록 요청합니다. 그래서 충돌된 부분을 확인하고 올바른 코드로 수정해야 합니다.
2. Git Conflict 해결 방법
충돌이 발생했을 때 첫 번째 단계는 어떤 파일에서 충돌이 일어났는지 확인하는 것입니다. 이는 'git status' 명령어를 통해 확인할 수 있습니다.
$ git status
위 명령어를 실행하면 현재 Branch 상태와 함께 Conflict가 발생한 파일들도 함께 표시됩니다.
충돌된 파일들을 열어보면, <<<<<<<, =======, >>>>>>> 등의 표시와 함께 어떤 부분에서 충돌이 발생했는지 표시됩니다. 여기서 <<<<<<<과 ======= 사이에 있는 내용은 현재 Branch의 변경사항이고, =======과 >>>>>>> 사이에 있는 내용은 병합하려는 Branch의 변경사항입니다.
개발자들은 해당 부분들 중 어느 것이 최종적으로 반영되어야 하는 코드인지 판단하여 직접 수정해서 충돌을 해결해야 합니다.
3. GitHub에서 Conflict 사용하기
GitHub 웹 인터페이스에서도 비슷한 과정으로 Conflict를 처리할 수 있습니다:
1) 웹 인터페이스 상단 바에서 "Pull requests" 탭으로 들어갑니다.
2) Merge conflict가 있는 Pull request를 찾아 클릭합니다.
3) "Resolve conflicts" 버튼을 클릭합니다.
4) GitHub 에디터 상에서 직접 Conflict들을 수정하여 Resolve 가능합니다. 이때, <<<<<<<, =======, >>>>>>> 등의 표시를 모두 삭제하고 올바른 코드만 남겨야 합니다.
5) 모든 Conflict들을 처리한 후 "Commit merge" 버튼 클릭하여 완료합니다.
4. 주요 포인트: Conflict 예방하기
추가적으로 기억해야 할 것 중 하나는 가능한 한 Conflict를 예방하는 것입니다. 이렇게 하려면 작업을 잘 조직하고, 자주 코드를 병합하여 최신 상태를 유지하는 것이 중요합니다.
특히, Branch를 만들 때는 최신 상태의 메인 Branch로부터 만드는 것이 좋습니다. 그리고 작업 내용은 가능한 한 구체적이며 작은 단위로 커밋하는 것이 좋습니다.
5. 결론
Git/GitHub의 Conflict 해결은 여러 사람과 협업하며 동시에 다양한 작업을 진행할 때 필수적인 기술입니다. 이를 통해 서로 다른 변경사항들을 효과적으로 합칠 수 있으며, 프로젝트의 안정성을 유지할 수 있습니다.
하지만 충돌 자체는 꼭 나쁜 것만은 아닙니다. 오히려 충돌 과정에서 다른 개발자의 코드 변경사항에 대해 알게 되고 그에 따라 더 나은 코드 구조나 설계 방향 등에 대해 고민하게 됩니다.
따라서 Git/GitHub에서 제공하는 이런 충돌 해결 도구와 방법론을 잘 활용한다면 개발 과정 전체가 더욱 건강하고 생산적으로 진행될 수 있습니다.
이상으로 Git/GitHub Conflict 사용 방법에 대한 글을 마칩니다. 이 정보가 여러분의 프로젝트에 도움이 되기를 바라며, 더 깊은 이해와 활용을 위해 실제 프로젝트에서 충돌 해결 과정을 직접 경험해 보시길 권장합니다.