저는 대학생활을 할 때부터 GitHub을 사용해왔지만 지금까지 GitHub을 수동적으로 단순히 팀 프로젝트를 할 때 코드를 공유하는 용도와 개인적인 개발 기록공간으로만 사용해왔습니다.
물론 Git의 정확한 의미와 branch, rebase, pull request 등의 구체적인 여러 기능들을 모르고말이죠.. 심지어 Git의 명령어들을 잘 사용하지 못하여 GitHub Desktop이라는 GUI 기반의 프로그램을 사용하였습니다😅
하지만 우테코를 시작하며 Git의 여러 기능들을 직접 사용해 보게 되었고, 이번 기회에 Git을 확실히 파헤쳐보자는 다짐을 하며 이렇게 공부를 하게 되었습니다.
자 그럼 Git이 도대체 무엇인가!?에 관한 내용부터 알아가보도록 하겠습니다.🔥
📌 Git이란 무엇인가?
Git이란건 과연 무엇일까요?? Git을 한 문장으로 설명을 하자면 파일의 변경사항을 추적하고 그 이력을 기록하고 관리하도록 돕는 버전관리 시스템입니다.
Git의 특징은 다음과 같은 내용이 있습니다.
-
오픈 소스 버전 관리 시스템(VCS: Version Control System)이다.
- 대부분의 VCS와 다르게 '스냅샷'으로 저장된 각 버전을 저장한다.
- Local에서 변경사항을 추적하고 관리한다.
- Local에서 관리하여 인터넷이 필요없고 여러 클라우드 서비스와 독립적으로 사용될 수 있다.
- branch의 생성, 복구, 삭제, 병합을 지원해준다.
- 인터넷이 없이 local에서 관리를 하기에 다른 개발자들과 실시간으로 작업 내용을 공유할 수 없다.
📌 Git과 Github는 같은 것인가!?
찾다보니 해당 질문은 기업 면접을 볼 때도 종종 나오는 질문이라고 하더군요🧐 Git과 Github는 같은 것을 의미하는 것일까요??
정답을 말해드리자면 Git과 Github는 서로 연관은 있으나 다른 내용입니다. Github는 Git의 repository를 관리하는 클라우드 기반의 호스팅 서비스입니다. 즉, Git은 local에서만 작업을 할 수 있었다면 Github는 Git의 작업 내용들을 호스팅하여 다른 개발자들과 공유를 할 수 있게 해주는 서비스라고 정리할 수 있습니다.
Github의 특징은 다음과 같습니다.
- Git의 repository를 관리하는 클라우드 기반의 호스팅 서비스입니다.
- Git의 기본적인 기능을 확장하여 제공한다.
- 소스가 클라우드 서버에 업로드되어 하나의 프로젝트에 여러 개발자가 협업을 할 수 있다.
- 분산 버전 제어, 액세스 제어, 소스 코드 관리, 버그 추적, 기능 요청 및 작업 관리를 제공한다.
📌 정리
Git과 Github는 과거의 저를 포함하여 다수의 사람들이 동일한 것이라 알고 있으나 둘은 확실히 다른 서비스입니다. 둘의 가장 큰 차이점은 Git은 local에서 버전 관리를 하는 것이고, Github는 클라우드 기반에서 소스를 저장하고 관리를 하여 버전관리, 소스코드 공유 등의 작업이 가능하다는 것입니다.