위코드에 오기 전이나, 위코드에 오고 나서도 항상 듣던 말이 있다.
"Git 은 정말 혁신적이고, 사회에 나가서도 Git 를 제대로 쓸 줄 안다고 하면 정말 대우받는다"
Git 을 제대로 사용하지 않았을 때, 나는 이 말이 무슨 말인지 도통 이해를 못했다.
도대체 왜 Git 을 사용하는 거지...?
이번 Project : Market Bully
를 진행하며 제대로 Git 을 사용하면서 다음과 같은 포인트들에서 "아, 이래서 Git, Git 하는 구나" 를 느꼈다.
전에는 commit 별로 찍을 일이 없어서, 나는 이걸 왜 찍지...? 라는 의문점이 많이 들었다.
하지만 이번 프로젝트를 진행하면서 계속된 기획 변경때문에 진행했던 것들을 버리고 이전으로 돌아가야 할 때가 굉장히 많았다. 옛날에는 이런 일이 터지면 그저 ctrl + z
만 열심히 한땀한땀 누르기 마련이었지만 이번에는 그저 클릭 한 번으로 내가 원하는 지점으로 돌아갈 수 있었다.
Git commit 이란 게임으로 비유하자면 일종의 "중간 save 지점" 과 비슷하다
내가 작업한 공통 컴포넌트가 push 후 remote master 에 먼저 merge 가 되었고, 이후 팀원들이 각자 branch 에서 레이아웃 작업을 끝낸 후 push하고 저녁을 먹고 돌아와서 였다.
각자 push 된 사항이 리뷰가 됐는 지 확인하러 GitHub 을 들어가봤는 데, 다음과 같은 라벨이 붙어 있었다.
status : 컨플릭트 해결 요청
처음 보는 라벨이었고, 멘토님들이 달아주신 줄 알았다. 그런데, 알아보니, 이는 GitHub 이 자체적으로 달은 거였다.
이에 대해 알아보니 GitHub은 자체적으로 remote master 와 새로 push 된 branch 를 비교해 conflict이 일어나는 지를 자체적으로 알려준다. 즉, 사용자가 미리 conflict 을 예상할 수 있다는 것이다.
Git 은 자체적으로 conflict 를 계산한다!