버전 관리라는 것 자체가 각 버전 별로 변경된 이력들을 저장하는 작업이라고 할 수 있습니다.
하나하나 추가되는 기능들의 변경 이력을 저장해 둘 수 있는 것입니다.
다시 이전 버전으로 되돌아가야 하는 상황이 발생할 경우 이전의 변경 이력들이 기록되어 있으니 되돌아가는 것이 가능하겠죠?
Git으로 관리되는 파일은 Github, GitLab, Bitbucket 등의 여러 가지 원격 저장소를 이용해서 백업과 협업을 할 수 있습니다.
Git이란 개발자의 코드를 효율적으로 관리하기 위해서 개발된 ‘분산형 버전 관리 시스템’ 입니다.
특정 시점에 생성된 백업 복사본을 스냅샷이라고 하는데요. 이렇게 하나하나 스냅샷을 만들어 주는 작업을 commit이라고 합니다.
두 가지를 비교해 보자면
Git은 소스 코드 기록을 관리하고 추적할 수 있는 버전 관리 시스템입니다.
Github은 Git Repository를 관리할 수 있는 클라우드 기반 서비스입니다.
즉 Git으로 버전을 관리하는 폴더에 대해서 Github을 통해 여러 사람들이
공유하고 접근할 수 있는 것이죠. 한 마디로 개발자들의 SNS입니다.
Github에서 Code Review 등을 통해 협업이 가능하고,
수많은 오픈 소스 프로젝트들이 GitHub로부터 호스팅되고 있어서,
누구든 자유롭게 기여할 수 있습니다.
소스 코드 폴더가 버전 관리를 받게 하기 위해서는
내 폴더를 Git의 관리 아래에 두어야 하는데요.Git으로 관리되는 폴더를
Git repository 라고 합니다.
Git repository 는 Remote Repository와 Local Repository 두 종류의 저장소를 제공합니다. 작업할 때는 Local Repository에서 할 수 있고 내가 작업한 코드를 공유하려면 Remote Repository에 업로드해 여러 사람이 함께 공유할 수 있습니다. 다른 사람이
Remote Repository에 올려놓은 소스 코드를 내 Local Repository 로 가지고
올 수도 있습니다.
내 컴퓨터에서 변경 작업을 완료했습니다.
그렇다면 이 변경된 내용을 commit을 통해 저장해 준 뒤,
Remote Repository에 반대로 올려주는 작업이 필요합니다.
이 과정을 Push 라고 합니다.
Local Repository에 기록해 놓은 commit을 Remote Repository로 업로드할 수 있습니다.
이렇게 Push를 완료하고 나면 GitHub에는 Pull request라는 기능이 있어서, 내가 제안한 코드 변경사항에 대해 반영 여부를 요청할 수 있습니다.
그런데 반대 상황도 발생할 거예요. Remote Repository에서 변경 사항이 있을 때 Local Repository 로 가져오는 Pull 작업도 가능합니다.
작업한 프로젝트들을 내 Github 계정에 올려 놓으면 개발자 구직을 할 때 포트폴리오로도 활용할 수가 있습니다.