Branch
마치 두 개의 프로젝트 폴더를 따로 가지고 작업을 한 것과 같은 효과를 내면서 이 작업이 끝났을 때, 실험적인 작업에서 변경된 내용을 오리지널 소스로 매우 간편하게 병합할 수 있다.
각 브런치는 프로젝트 디렉토리를 카피한 것과 같은 효과를 가진다.
mater branch : 저장소를 만들 때 기본적으로 만들어지는 브랜치
merge(병합) : 실험 브랜치에서 했던 작업들을 마스터 브랜치에 합침. 받는 쪽 브랜치를 선택(checkout) 한 후 가져오려는 브랜치 우클릭 - 현재 브랜치로 병합(Merge 브랜치이름 into current branch)
Conflict(충돌)
브랜치들이 서로 같은 곳을 수정했을 때, 버전관리 시스템이 자동을 병합해 줄 수 없어 사용자에게 그 문제를 해결하라고 함
마스터 브랜치와 실험1 브랜치가 다른 내용을 갖고 있지만 같은 위치를 수정했기 때문에 git 입장에서는 어떻게 처리해야할지 판단할 수 없어서 사용자에게 위임함
수정 후 - 충돌해결(resolve conflicts) - mark resolved : 내가 충돌을 해결했다고 git에게 알려줌
커밋하면
----------------------------
Merge branch '실험1'
# Conflicts:
# index.html
------------------
내가 입력하지 않은 메세지가 나와있음 -> index.html에서 충돌이 일어났다.
충돌 최소화하기
실험 브랜치는 언젠가 마스터 브랜치에 결합 될 것이다.
실험 브랜치를 작업하기 전에 마스터 브랜치의 내용을 실험 브랜치로 가져옴
-> 마스터 브랜치의 변화를 계속해서 실험 브랜치로 옮겨오면서 실험 브랜치 작업을 해나가면 나중에 실험 브랜치와 마스터 브랜치를 병합했을 때, 충돌을 최소화하거나 없앨 수 있다.
'programming > git' 카테고리의 다른 글
소스트리(source tree) 이용해서 git 사용하기④ (0) | 2021.03.05 |
---|---|
소스트리(source tree) 이용해서 git 사용하기② (0) | 2021.02.28 |
소스트리(source tree) 이용해서 git 사용하기① (0) | 2021.02.28 |