코드 작성 중 잘못된 코드를 입력 후 종료했다면 이전 코드로 돌아갈 수 없습니다. 이런 경우를 대비해 내용을 보존해야할 필요성이 있습니다. 이 시스템을 우리는 버전 관리 시스템 (Version Control System)이라고 부릅니다.
버전 관리 시스템 중 가장 많이 쓰이는 강력한 도구가 Git입니다.
Git을 통해 협업을 할 수 있고 오픈 소스 생태계에 기여할 수 있는 개발자가 될 수 있습니다.
각 버전 별 변경된 이력들을 저장하는 작업입니다.
(이전 버전으로 돌아가야하는 상황 속 변경 이력을 저장해놨기 때문에 돌아가는 것이 가능합니다.)
따라서 변경 사항을 저장할 때는 코멘트를 꼭 작성해야 합니다.
Git으로 관리하는 파일은 Github, GitLab, Bitbucket 등 여러 가지 원격 저장소가 있고, 백업과 협업을 할 수 있습니다.
날짜별로 어떻게 파일이 바뀌는지 확인 가능합니다.
각 기능 구현별 개발자는 Commit을 진행하게 됩니다.(== 진행해야 합니다.)
Commit을 통해 기능 변경 뿐 아니라 버전 관리를 통해 추적하고 협업할 수 있습니다.
변경 사항의 하이라이트 부분을 통해 이전 버전과 비교하고 돌아갈 수 있습니다.
Git은 소스 코드 기록을 관리하고 추적할 수 있는 버전 관리 시스템입니다.
Github는 Git Repository를 관리할 수 있는 클라우트 기반 서비스입니다.
따라서 협업을 할 때 Github를 통해 여러 사람이 접근하고 공유할 수 있습니다. (개발자들의 SNS)
Github에서는 매일 많은 양의 Code Review를 통해 협업이 가능하고 수많은 오픈 소스 프로젝트들이 Github로 호스팅 되어 누구든 자유롭게 기여할 수 있습니다.
개발자가 작업할 때는 Local Repository에서 할 수 있고 작업한 코드를 공유하려면 Remote Repository에 업로드 해 여러 사람과 함께 공유할 수 있습니다.
다른 사람이 업로드 한 Remote Repository 또한 Local Repository로 가지고 올 수 있습니다.
각 프로젝트 contribute 하기 위해서는 먼저 원격 저장소로 가지고 오는 작업이 필요합니다. 그 과정을 Fork라고 합니다.
Fork를 하면 Remote Repository 자료를 내 컴퓨터로 가져오는 작업이 됩니다. 그 과정을 Clone이라고 합니다.
소스 코드 변경 작업 완료 후 Commit을 통해 저장한 뒤 Remote Repository에 올려주는 작업이 필요합니다.
(이 과정을 Push라고 합니다.)
Local Repository에 기록해 놓은 Commit을 통해 Remote Repository에 업로드할 수 있습니다.
Push 완료 후에는 Github에 있는 Pull Request를 통해 변경 사항에 대한 반영 여부를 요청할 수 있습니다.
코드 변경 작업 중 Remote Repository의 코드가 변경됐을 경우 Pull을 통해 Local Repository로 가져오는 작업도 가능합니다.