- Published on
메인 브랜치 날리지 않고 안전하게 깃(Git) 충돌 해결하기
- Authors
- Name
- 스타차일드
- https://x.com/ETFBITX
소프트웨어 개발에서 여러 개발자가 동시에 작업하는 것은 불가피하다. 이 과정에서 종종 발생하는 것이 바로 깃(Git) 충돌이다. 충돌은 두 개 이상의 브랜치에서 동일한 파일을 수정했을 때 발생하며, 이를 해결하지 않으면 머지(Merge)가 불가능하다. 이 글에서는 메인 브랜치를 날리지 않고 안전하게 충돌을 해결하는 방법에 대해 알아보겠다.
충돌의 원인과 중요성 이해하기
깃에서 충돌이 발생하는 상황은 다양하다. 예를 들어, Alice가 feature-1 브랜치에서 file.txt를 수정하고, 동시에 Bob이 feature-2 브랜치에서 같은 파일을 수정했다면, main 브랜치에 이 두 브랜치를 머지할 때 충돌이 발생하게 된다.
충돌을 해결하는 것은 프로젝트의 안정성과 일관성을 유지하는 데 필수적이다. 이를 소홀히 하면 코드의 일관성이 깨지고, 버그가 발생할 수 있다. 따라서, 충돌 해결 과정은 단순히 오류를 수정하는 것을 넘어서, 팀워크와 협업의 중요한 부분임을 인식해야 한다.
충돌 해결 절차
충돌을 해결하기 위한 기본적인 절차는 다음과 같다.
1. 현재 브랜치 확인
먼저, 현재 작업 중인 브랜치를 확인하자. 다음 명령어를 사용하면 현재 브랜치를 확인할 수 있다.
git branch
2. 메인 브랜치 업데이트
메인 브랜치의 최신 상태를 가져오기 위해 main 브랜치로 체크아웃한 후 업데이트한다.
git checkout main
git pull origin main
3. 머지 시도
이제 작업 중인 브랜치로 돌아가서 메인 브랜치를 머지해본다.
git checkout feature-1
git merge main
4. 충돌 상황 확인
만약 충돌이 발생하면, 깃은 어떤 파일에서 충돌이 발생했는지 알려준다. 충돌이 발생한 파일을 확인하려면 다음 명령어를 사용한다.
git status
5. 충돌 해결
이제 충돌이 발생한 파일을 편집기로 열고, 충돌 부분을 확인한다. 깃은 충돌된 부분을 다음과 같이 표시한다:
<<<<<<< HEAD
// your changes
=======
// changes from merging branch
>>>>>>> feature-2
위의 표시에서 HEAD는 현재 브랜치의 내용을, 그 아래는 머지하려는 브랜치의 내용을 나타낸다. 원하는 내용을 선택하거나 두 내용을 조합하여 수정한 후, 변경 사항을 저장한다.
6. 변경 사항 추가 및 커밋
수정이 완료되면, 충돌이 해결된 파일을 스테이징하고 커밋한다.
git add file.txt
git commit -m "Resolve merge conflict in file.txt"
이제 머지된 브랜치가 완성되었다. 이 과정을 통해 메인 브랜치를 지키면서도 안전하게 충돌을 해결할 수 있다.
Best Practices
충돌을 효과적으로 관리하기 위해 몇 가지 베스트 프랙티스를 소개한다.
1. 자주 Pull 하기
자주 메인 브랜치의 변경 사항을 가져오는 것은 충돌을 줄이는 데 큰 도움이 된다. 작업 중간중간 git pull origin main을 실행하여 최신 상태를 유지하자.
2. 작은 단위로 작업하기
작업을 작고 의미 있는 단위로 나누어 커밋하는 것이 좋다. 이렇게 하면 충돌 발생 가능성을 줄일 수 있고, 만약 충돌이 발생하더라도 해결하기 쉬워진다.
3. 코드 리뷰 프로세스 도입하기
코드 리뷰를 통해 서로의 변경 사항을 미리 알고, 충돌 가능성을 줄일 수 있다. 팀원 간의 소통을 통해 코드의 질을 높이는 것 또한 중요하다.
결론
깃 충돌은 협업 과정에서 불가피하게 발생할 수 있는 상황이지만, 이를 안전하게 해결하는 방법을 알면 프로젝트의 일관성을 유지할 수 있다. 위에서 설명한 절차와 베스트 프랙티스를 통해 충돌을 효과적으로 관리하고, 더 나아가 팀의 협업 능력을 높일 수 있기를 바란다. 더 많은 Git의 개념과 명령어에 대해서는 Git의 개념 및 명령어 정리를 참고하길 추천한다.