개관¶
깃의 역할에 대해 이해하기 위해서는 '버전 컨트롤 시스템(version control system, VCS)'의 개념을 알아야 합니다. VCS란 파일의 과거 변동 이력을 기록하기 위해 사용하는 시스템을 의미합니다. 일반적으로 컴퓨터에 문서를 작성할 때에는 최종본이 완성되기 전까지 문서를 수정하는데, 과거 변경 내역을 남겨놓기 위해서는 이름을 바꾼 별도의 파일을 유지합니다. 그런데 문서를 혼자서 작성하는게 아닌 경우에는 이런 방식으로 과거 이력을 기록하면서 문서를 유지하기가 어렵습니다. 이 때문에 과거 변동 이력을 포함한 파일의 상태를 관리하기 위해 사용하는 시스템이 VCS입니다.
깃은 VCS 중에서 압도적인 점유율을 자랑하는 시스템입니다. 리눅스의 창시자이기도 한 리누스 토르발스가 리눅스 커널의 소스코드를 관리하기 위해서 개발한 것으로 알려져 있습니다. 깃은 cli 기반 환경에서 로컬에 생성한 파일과 서버에 저장된 파일 간의 동기화, 병합, 충돌 해결 등을 위한 수단으로 활용합니다. 깃을 이용하면 여러 사람이 하나의 프로젝트를 공동으로 작업하기가 쉬워지며, 개인이 진행하는 프로젝트의 경우에도 코드나 파일을 변경했을 때에 과거 이력을 확인하고 복원(rollback)하는 용도로 활용하면 안정적인 프로젝트 진행이 가능해집니다.
깃허브는 깃을 이용하여 파일의 버전 관리를 할 수 있는 저장소 역할을 하는 플랫폼입니다. 이때에 하나의 프로젝트와 연결되는 저장소를 레포(repo, repository의 줄임말)라고 부릅니다. 깃허브는 개인 개발자뿐만 아니라 세계적인 기업이나 오랜 역사를 가진 프로젝트의 소스코드를 관리하는 역할을 하고 있습니다. 최근에는 깃허브 액션(GitHub Actions), 깃허브 코파일럿(GitHub Copilot) 등을 통해 단순한 코드 파일의 저장소 역할이 아니라 서비스를 배포하거나 클라우드와 연동하여 하나의 애플리케이션이나 시스템을 구축하는 역할까지도 담당하고 있습니다.
설치¶
거의 모든 운영체제에서는 깃을 기본으로 지원하고 있습니다. 만약, 깃이 설치되지 않았다면 깃 공식 홈페이지에서 운영체제에 맞는 방법으로 설치하면 됩니다.
참고로 깃은 cli가 아닌 gui로도 사용할 수 있습니다. 다만, gui는 cli를 기반으로 작동하기 때문에 근본적으로 cli를 이해하지 못하면 gui의 기능을 100% 활용하기 어렵습니다. 실제로 깃은 gui로는 기능을 100% 활용할 수 없는 것으로 알려져 있습니다.
깃허브는 홈페이지에서 회원가입 후 사용할 수 있습니다. Home Repository 메뉴에서 레포를 생성할 수 있고, 레포를 생성하면 ssh나 https 주소를 이용하여 로컬 환경과 깃허브를 연결할 수 있습니다.
깃의 기본 명령어¶
초기화¶
초기 설정¶
레포 연동¶
스테이징¶
커밋¶
푸시¶
버전 관리¶
깃허브 코파일럿(GitHub Copilot)¶
깃허브는 오픈소스에 기반한 기업으로 시작했지만, 2018년 마이크로소프트가 인수했습니다. 이후, 마이크로소프트는 자사의 텍스트 에디터인 비주얼 스튜디오 코드(Visual Studio Code, VS Code)와 깃허브를 연동할 수 있는 기능을 강화했는데, 최근 출시한 기능 중 각광받고 있는 것이 깃허브 코파일럿입니다.
코파일럿은 코드 작성 과정에서 생성형 AI를 활용할 수 있도록 지원하는 기능입니다. 깃허브가 본래 자사의 웹사이트에서 코드 파일을 수정하거나 새롭게 작성할 수 있는 기능을 지원하고 있었는데, 여기에 생성형 AI의 기능을 접목하여 코드 작성을 수월하게 할 수 있도록 만든 서비스가 코파일럿입니다. VS Code에서는 깃허브의 코파일럿을 웹에 접속하지 않고 앱에서 직접 사용할 수 있도록 플러그인을 지원하고 있습니다. 이를 이용하면, 로컬 환경에 작성하는 파일 작성시 생성형 AI의 기능을 이용할 수 있습니다. 또한, 깃허브 코파일럿은 클로드, 챗GPT, 제미나이, 그록 등 주요 생성형 AI 모델을 모두 사용할 수 있도록 지원하고 있어서 다양한 AI 서비스를 구독하지 않고도 사용할 수 있는 편의를 제공하고 있습니다.
깃허브 코파일럿은 깃허브의 유료 서비스이지만, 교육용 패키지에 포함되어 있기 때문에 학생이나 교직원은 무료로 사용할 수 있습니다. 깃허브 교육용 패키지는 컴퓨터, 데이터 과학, 소프트웨어 개발을 공부하는 학생이라면 반드시 사용해야하는 서비스라고 할 수 있습니다.