인프런의 강민철님의 모두의 깃 깃허브 강의를 참조하였습니다.
먼저 깃이란 무엇일까? 사전적 정의는 '버전을 관리해주는 도구'이다. 요즘 실무 개발자들은 깃을 통해 프로젝트 소스를 올리고 변경하고 삭제하고 한다. 그럼 왜 깃을 쓰는지 깃이 없었을 시절을 생각해보자.
깃이 없으면 아마 여러 문제점들이 나오겠지만 가장 큰 이슈는 이 3가지이다.
그럼 왜 이 3가지 이슈가 큰 문제인지 살펴보자.
대개 파일을 단순히 저장하면 이전에 어떤 내용에서 변경이 되었는지 추적하기가 어려워진다. 그래서 변경내역이 발생할 시, 파일을 계속 생성하는 것은 메모리 낭비가 심할 것이다. 또한 최종본이 될 때까지 어떠한 변경사항으로 만들어졌는지 확인할 길이 없다.
위의 네이버 사이트가 있는데 일부 부분을 변경하고자 한다. 그래서 예를 들어 로고 모양을 변경하였다. 디자인을 변경하는 과정에서 소스 코드 파일 곳곳을 수정하거나 삭제했을 것이다. 하지만 로고 모양을 다시 원상태로 복구를 하고 싶을 때, 다시 말해, 이전으로 돌리고 싶을 때, 깃을 사용하지 않으면 어려워진다.
우리는 실무에서 대개 프로젝트에 대해 특정 모듈을 분리하여 개발을 진행한다. 그리고 추후에 각 개발한 모듈들을 합치는 작업을 진행한다. 하지만 깃이 존재하지 않으면 이 모듈에서는 어떤 파일을 생성했고, 삭제했으며 수정을 하였는지 즉, 수 많은 코드의 변경사항을 확인하고 작업을 되돌리고 협업하기 어렵다. 하지만, 변경사항(=버전)을 조금 더 일목요연하기 관리하자는 생각으로 깃이 필요하기 된 것이다.