Git 핵심기능
1. Version Control - 버전 관리
2. Backup - 백업
3. Collaboration - 협업
1. 버전관리
포토샵, 일러, 보고서 등... 문서나 툴을 다룰 때 지금까지 했던 내용도 남기고 수정한 내용도 남기기 위해 '다른 이름으로 저장' 기능을 많이 사용했었다. ex) 'Background 초안.psd', 'Background 201113수정.psd', 'Background 최종.psd', 'Background 진짜최종.psd' 등 수정 전 파일과 구분하기 위해 원래 파일명과 다르게 저장했었다. 하지만 현재 상태가 마음에 안들어서 특정 상태를 수정한 부분으로 돌아가고 싶을 때, 그 이후로 저장한 파일들이 너무 많고 그 파일들마다 어떤 것을 수정했었는지 기억도 잘 안나서 하나하나 다 열어봤던 불편함이 있었다.
코딩을 할 때 소스코드도 마찬가지다. 수정내역을 관리 해주는 시스템 깃은 문서를 수정할 때 마다 언제 수정했는지, 어떤 것을 변경했는지 편하고 구체적으로 기록하기 위한 버전 관리 시스템이다.
2. 백업
컴퓨터에 있어서 '확실한 것'은 내 컴퓨터는 언젠가 고장난다는 것이고, '불확실한 것'은 언제 고장날지 모른다는 것이다. 백업은 언제 고장날 지 모르고 언제 유실될지 모르는 데이터를 다른 저장소에 복제하는 것이다. 외장하드나 USB같은 별도의 저장장치, 구글드라이브,드롭박스와 같은 인터넷 서비스를 사용하기도 한다. 백업 공간을 제공하는 인터넷 서비스 중에 깃 파일을 위한 저장소 중 가장 많이 쓰이는 것이 바로 깃허브(Github)다.
3. 협업
깃허브와 같은 온라인 서비스를 사용하면 여러 사람이 함께 일할 수 있다는 장점이 생긴다. 예를들어 팀원 둘이서 작업을 할 경우 A가 작업을 해서 원격 저장소에 올리면 원격 저장소에 있는 문서를 B가 내려받아 작업하고, 작업이 끝난 후 그 결과를 다시 원격 저장소에 올린다. 이처럼 깃을 사용하면 팀원들이 파일을 편하게 주고 받으면서 일할 수 있고 누가 어느 부분을 어떻게 수정했는지 기록에 남기 때문에 나중에 오류가 발생했을 때도 파악하기 쉬워진다.
' 만일 두 사람이 같은 파일을 수정하면 어떻게 될까? ' 이 부분은 깃을 처음 접하면서 가장 궁금했던 부분이다. 앞으로 공부하겠지만 이렇게 협업과정에서 일어날 수 있는 여러문제를 중간에서 정리해주는 기능도 가지고 있다고한다.
깃의 공부순서는 1.버전관리 -> 2. 백업 -> 3. 협업 순서로 버전관리를 이해하지 못하면 백업을 이해할 수 없고 백업을 이해하지 못하면 협업을 이해할 수 없다고 한다. 그래서 일단 큰 틀만 잡고 넘어가기로 했다.
Git 프로그램의 종류
1. Github Desktop
온라인 저장소 서비스인 깃허브에서 제공하는 프로그램으로 복잡한 깃 사용법을 GUI ( Graphic User Interface ) 로 구현한 것이다. 자주 쓰는 기본적인 기능 위주로 구성되어 누구나 쉽게 배우고 사용할 수 있다는 장점이 있다.
2. Source Tree
깃의 기본 기능부터 고급기능까지 사용할 수 있는 프로그램이다. 기능이 많아 사용법은 복잡하지만 어느정도 익숙해지면 자유롭게 깃을 활용할 수 있다.
이 이외에도 토스터 깃, 커맨드라인 인터페이스 등 여러가지 깃 프로그램이 있다.