생활코딩 이고잉님의 git 강의branch가 실제 프로젝트에서 어떻게 영향을 주고, 어떤 장점이 있는지, merge, conflicts, mark resolve
오늘 느낀점
일반적인 작업(버그픽스, 기능개선 등) 외에 불확실한 미래를 갖고 있는 작업(1.하드웨어 퍼포먼스 문제로 시스템적으로 동작은 하지만 작품성이 없는 경우, 2.모든 요건은 충족했지만 법적으로 문제되는 경우, 3.경영자의 변덕으로 인해서 그 기능이 drop되는 경우)이 추가되는 경우에 분기해서 작업할 필요하가 있다(안정적인 작업/불안정적인 작업). 하나의 소스파일에서 취소된 작업을 도려내긴 어렵다.
분기해서 작업을 하면 병합(merge)을 하거나, 병합을 하지 않으면 된다.
깃을 사용하면 프로젝트 파일을 따로 두고 각각의 파일에서 작업하는 효과를 갖는 동시에 불안정적인 일이 끝났을 때, 변경된 내용을 원본 파일에 매우 간편하게 자동적으로 병합해주는 일을 해줄 수 있다.
branch는 원본 디렉토리를 똑같이 복사해서 따로 작업하는 것과 같은 효과이다.
버전관리 시스템이 자동적으로 병합할 수 없을 때, 우리에게 해결하라고 위임하는 경우가 있다.2개의 서로 다른 브렌치가 하나의 파일안에서 같은 위치의 내용을 수정했기 때문에 git의 입장에서는 누구의 코드를 사용해야할지 알 수가 없다. 이런 경우 conflicts가 일어난다.
conflicts를 최소화하는 방법은 한번에 병합하는 것이 아니라, test 브렌치가 master 브렌치를 끊임없이 동기화해서 가져온다.