만약 코드를 수정한 뒤 에디터를 종료했다면, 다시 실행한 텍스트 에디터에서 이전 코드로 돌아갈 수 없습니다. 이런 경우를 위해서라도 이전에 작성한 내용을 보존해야 할 필요가 있습니다. 다행히 이전에 작성한 내용을 보존해 주는 시스템이 있습니다. 그 시스템이 바로, 버전 관리 시스템(Version Control System)입니다.
Git이란 개발자의 코드를 효율적으로 관리하기 위해서 개발된 ‘분산형 버전 관리 시스템’입니다. 버전 관리 시스템의 기본적인 모습은 이 그림과 같습니다.
이렇게 특정 시점에 생성된 백업 복사본을 스냅샷이라고 하는데, 이렇게 하나 하나 스냅샷을 만들어 주는 작업을 commit이라고 합니다.
Git : 소스 코드 기록을 관리하고 추적 할 수 있는 버전 관리 시스템
Github : Git Repository를 관리할 수 있는 클라우드 기반 서비스
프로젝트에 contribute를 하기 위해서는 먼저 원격 저장소를 내 원격 저장소로 가지고 오는 작업이 필요합니다. 그 과정을 Fork라고 합니다.
Fork를 하고나면 나의 Remote Repository에 코드를 옮겨온 상태입니다. 이 코드를 수정하기 위해서는 내 컴퓨터로 가져오는 작업이 또 필요합니다. 그 과정을 Clone이라고 합니다.
내 컴퓨터에서 소스코드 변경 작업을 완료했다면 이 변경된 내용을 commit을 통해 저장해 준 뒤, Remote Repository에 반대로 올려주는 작업이 필요합니다. 이 과정을 Push라고 합니다.
Local Repository에서 변경된 사항을 Remote Repository에 업로드 하기 위해서는 Push를 사용했었는데, 반대 상황도 있을 수 있습니다. Remote Repository에서 변경사항이 있을 때 Local Repository로 가져오는 Pull작업도 가능합니다.