11. 11
1) 충돌의 조건
- 두개의 서로 다른 브런치가 하나의 파일 안에 같은
위치의 코드 부분을 수정 할 때
2) 해결방법
- 두 개의 브런치를 병합할 때 충돌 메시지를 보여주
고 수정 내용 중에 어느 것을 쓸 것인지 정하여서 충
돌 해결을 Git에게 알림
3) 충돌의 최소화
- 통합 브랜치와 토픽 브랜치가 통합 브랜치의 내용을
끊임없이 동기화해야지 충돌이 적어짐
브랜치를 이용해서 작업을 해야되는 이유는 개발자들은 동일한 소스코드를 함께 공유하고 다루게되고
동일한 소스 코드의 토대 위에서 누군가는 버그 수정을, 또 다른 개발자는 새로운 기능을 만들기도 합니다.
여기서 처음에 동일하게 사용되는 소스 코드의 브랜치를 통합브랜치라고 합니다.
이와 같이 여러 사람이 동일한 소스코드를 기반으로 서로 다른 작업을 할 때에는 각각 서로 다른 버전의 코드가 만들어 질 수 밖에 없습니다. 이처럼 서로 다른 버전의 코드를 가지고 있는 브랜치를 토픽브랜치라고 합니다. 그리고 그것들을 병합해서 하나의 버전으로 만드는 것이 효과적인 방법이므로 브랜치가 버전 관리 시스템에서 중요한 부분을 차지한다고 볼 수 있습니다.
또한 브랜치는 Git 뿐만 아니라 다른 버전 관리 시스템에서도 사용할 수 있는데요
다른 버전 관리 시스템에서 사용하기 힘든점은 개발자가 수동으로 소스코드 디렉토리를 복사해서 브랜치를 만들어야 하고
소스코드의 양이 많으면 브랜치를 만드는 시간이 오래 걸린다는 단점이 있습니다.
여기서 사람들은 브랜치 모델이 Git의 최고의 장점이라고 이야기하는데 Git가 다른 버전 관리 시스템과 구분되는 특징들에 대해서 말씀드리겠습니다.
Git의 브랜치는 매우 가볍다고 말할 수 있습니다. 예전 발표에서 git는 다른 버전 관리 시스템과 달리 변화된 그 순간만의 스냅샷을 커밋하여 저장하므로 버전의 크기가 작다고 말씀드렸습니다. 게다가 다른 버전 관리 시스템과는 달리 Git은 브랜치를 만들어 작업하고 나중에 Merge하는 방법을 권장하는데 그 이유 또한 git의 브랜치는 쉽고 빠르게 생성하고 이동할 수 있는 특징이 있기 때문입니다.
저장소 하나에 브랜치는 무조건 1개 이상, 기본적으로 제공하는 브랜치 이름이 master
여러 명이서 동시에 작업을 할 때에 다른 사람의 작업에 영향을 주거나 받지 않도록,
먼저 메인 브랜치에서 자신의 작업 전용 브랜치를 만듭니다.
그리고 각자 작업을 진행한 후,
작업이 끝난 사람은 메인 브랜치에 자신의 브랜치의 변경 사항을 적용합니다.
이렇게 함으로써 다른 사람의 작업에 영향을 받지 않고 독립적으로 특정 작업을 수행하고
그 결과를 하나로 모아 나가게 됩니다.