Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Archives
Today
Total
관리 메뉴

밤빵's 개발일지

[TIL]20240904 commit & merge 본문

개발Article

[TIL]20240904 commit & merge

최밤빵 2024. 9. 5. 00:31

협업 프로젝트를 진행하면서 Git을 사용하게 되었고, 커밋과 머지는 코드 관리에서 핵심적인 개념이다. 하지만 아직 Git 사용에 익숙하지 않은 나로서는 이 두 개념이 어떻게 활용되는지 제대로 이해하기 어렵다. 주특기 주차 때 커밋이랑 푸쉬하면서 과제를 날려먹은적이 있어서 아직도 깃사용은 손이 떨린다😢 이번에 프로젝트를 진행하며 커밋과 머지의 개념을 정확히 배우고, 협업에서 어떻게 활용하는지 기록해두려고한다. 

 

▶ 커밋(commit)

커밋은 버전 관리에서 하나의 변경 내역을 저장하는 행위이다. Git을 사용하는 개발에서는 파일을 수정하고 그 변경 사항을 기록하기 위해 커밋을 한다. 커밋을 통해 코드가 저장되고, 특정 시점으로 되돌릴 수 있는 일종의 스냅샷이 생성된다.

커밋 메시지를 통해 어떤 작업이 이루어졌는지 기록하는 것도 중요한데, 이 메시지를 보고 협업자들이 어떤 코드 변경이 있었는지 파악할 수 있기 때문이다.

 

▷커밋하는 방법

코드 변경 후, Git에서 커밋하는 기본적인 과정은 다음과 같다.

→ 변경된 파일을 스테이지에 추가 & 모든 변경 파일을 추가할 때:

git add <파일명>
git add .

 

→ 커밋하기:커밋 메시지에는 수정 내용이유를 간략히 기록해야 한다.

git commit -m "커밋 메시지"
git commit -m "refactor : 결제 기능 오류 수정 및 테스트 코드 추가"

 

▶ 커밋의 장점

→ 버전 관리:

커밋은 프로젝트의 히스토리를 기록하고, 어떤 변경이 언제, 왜 이루어졌는지 추적할 수 있게 한다.

→ 롤백 기능:

만약 실수로 잘못된 코드를 추가했다면, 이전 커밋으로 쉽게 돌아갈 수 있다.

→ 협업에 용이:

커밋 내역을 통해 팀원들이 코드의 변화 과정을 쉽게 파악할 수 있다.

 

▶머지(merge)

머지는 다른 브랜치에서의 변경 사항을 현재 브랜치에 합치는 작업이다. 협업 프로젝트에서 여러 개발자가 각자의 브랜치에서 기능을 개발하고, 이를 하나의 메인 브랜치에 합칠 때 사용한다.

 

▷머지하는 과정

 

→ 병합할 브랜치로 이동:

먼저 병합할 대상 브랜치로 이동해야 한다.(보통 main에 많이하는데 현 프로젝트는 develop에 머지를한다.)

git checkout develop

 

→ 다른 브랜치 병합:

다른 브랜치에서의 변경 사항을 가져와 병합한다. 예를 들어, feature/payment 브랜치에서 작업한 내용을 main 브랜치에 병합하려면

git merge feature/payment

 

▶머지의 중요성

머지는 협업 프로젝트에서 필수적인 작업이다. 여러 명이 동시에 작업하는 경우, 각자의 작업을 병합해 하나의 코드로 합치는 과정이 필요하다. 이를 통해 각 개발자가 작업한 코드를 함께 테스트하고, 기능을 결합할 수 있다.

 

▶머지 충돌(Conflict)

머지 과정에서 충돌(Conflict)이 발생할 수 있다. 충돌은 같은 파일의 같은 부분이 두 명 이상의 개발자에 의해 수정되었을 때 발생한다. Git은 충돌이 발생한 부분을 자동으로 해결할 수 없으므로, 개발자가 직접 코드를 확인하고 수정해야 한다.

예를 들어, 충돌이 발생하면 Git이 이를 표시해주며, 충돌 부분을 수동으로 해결한 후 다시 커밋해야 한다.

<<<<<<< HEAD
        코드 A
=======
코드 B
>>>>>>> feature/payment

→ 위와 같이 두 코드 중 하나를 선택하거나, 새로운 코드를 작성해 충돌을 해결할 수 있다.

 

▶협업에서 커밋과 머지의 역할

Git을 사용한 협업에서 커밋과 머지는 매우 중요한 역할을 한다. 각 팀원은 자신의 작업을 로컬 브랜치에서 작업한 후, 완료된 기능을 메인 브랜치에 병합한다. 이 과정에서 커밋은 개별 작업의 단위를 기록하고, 머지는 완성된 기능을 합치는 과정을 담당한다.

 

▶브랜치 전략

협업 프로젝트에서는 보통 Git 브랜치 전략을 사용한다. 주로 사용되는 전략은 다음과 같다:

→ main 브랜치:

배포 가능한 안정적인 버전을 유지한다.

→ develop 브랜치:

개발 중인 코드를 관리하고, 모든 새로운 기능이 병합되기 전에 이 브랜치에서 통합된다.

→ feature 브랜치:

새로운 기능을 개발할 때 사용한다. 각 기능은 별도의 브랜치에서 작업한 후, develop 브랜치에 머지된다.

 

▶정리

커밋은 변경 사항을 기록하고, 머지는 여러 브랜치의 작업을 통합하는 작업이다. 협업 프로젝트에서 이 두 가지는 코드의 안정성과 협업 효율성을 높이는 중요한 개념으로 Git을 사용해 올바르게 커밋하고 머지하는 방법을 숙달하면, 프로젝트의 진행 상황을 더 잘 관리할 수 있게 된다. 근데 나는 이걸 정리하면서도 내가 머지를하거나 커밋만 해도 다른 팀원을 불러서 몇 번씩 확인하게 된다 ㅠㅠㅠ 내 브런치에 커밋하는건데도 뭔가 잘못될까봐란 두려움이 너무 큰 것 같다.