본문 바로가기

Git

[Git] 깃과 깃허브

반응형

프로그래밍을 공부하셨다면 '깃허브'라는 단어를 한 번쯤은 들어보셨을 겁니다. 하지만 '깃'은 조금 생소하실 수 있습니다. 많은 사람이 깃과 깃허브를 같은 것으로 알고 있습니다. 저 또한 그랬었죠. 하지만 깃과 깃허브는 다릅니다! 미리 말하자면 깃은 '도구'이고 깃허브는 '저장소'입니다.

깃은 버전 관리 프로그램입니다. 버전 관리란 파일의 변화를 시간에 따라서 기록했다가 나중에 특정 시점의 버전을 꺼내올 수 있는 시스템을 말합니다. 

 

버전은 여러분이 아시는 그 버전이 맞습니다. 전공서적을 보면 대부분 제목 앞에 '-th edition'이 붙습니다. 모든 책이 처음부터 완벽할 수는 없으니 조금씩 수정되는 것은 당연한 일입니다. 과제를 제출할 때도 마찬가지입니다. 학교 과제로 팀플을 해본 경험이 있다면 아래와 같은 일이 한 번쯤은 있었을 겁니다.

 

이렇게 하면 뭐가 뭔지 헷갈립니다. 파일마다 어떤 차이점이 있는지, 어떤 부분이 수정됐는지, 진짜 최종 보고서는 뭐였는지 나중에 찾아보면 기억이 안 날 가능성이 큽니다. 버전 관리는 이런 문제를 해결해줍니다.

 

깃은 파일을 하나로 통합하고, 내용이 수정된 시점들을 기억해놓습니다. 특정 시점으로 돌아가고 싶으면 돌아갈 수 있습니다. 그래서 각 시점마다 어떤 부분이 수정됐는지 쉽게 파악할 수 있습니다. 에를 들어 '기능 A 추가'라는 제목의 시점으로 돌아가면 그때로 돌아가는 겁니다. 마치 타임머신 같네요. 위 사진처럼 파일을 여러 개 저장하는 것과는 분명 차이가 있습니다. 이러한 기능 때문에 깃은 협업을 할 때 필수적으로 사용하는 프로그램입니다. 여러 명이 버전 관리를 같이 하면 크드를 관리하기가 굉장히 수월해지고, 동시 협업도 가능해집니다.

깃은 다른 컴퓨터로 작업물을 보내는 기능도 제공합니다. 노트북에서 작업하던 코드를 학교 컴퓨터로도 작업할 수 있고, 집에 있는 컴퓨터로도 작업할 수 있게 되는 거죠. 하지만 노트북으로 일일이 다 보내는 것은 정말 귀찮은 일입니다. 어디서든 접근할 수 있는 곳에 작업물을 저장해두고, 필요하면 어디서든 이 작업물을 내려받을 수 있으면 정말 편하겠죠. 그래서 나온 게 깃허브입니다. 깃허브는 원격 저장소입니다.

그러니깐 깃으로 버전 관리를 하고, 저장은 깃허브에 하는 것입니다!

반응형