- Git은 로컬(Local)에서 관리되는 분산 버전 관리 시스템(VCS)이다.
- Git은 소스코드 수정에 따른 버전을 관리해주는 시스템이다.
- Git은 빠른 수행 속도에 중점을 두고 있는 것이 특징이다.
- Git은 데이터 무결성, 분산, 비선형 워크플로우를 지원한다.
- GitHub는 클라우드(Cloud)방식으로 관리되는 버전 관리 시스템(VCS)이다.
- GitHub는 온프레미스(On-premise)방식이 아닌 빌려 사용하는 Cloud개념이다.
- GitHub는 공개 저장소(무료)와 비공개 저장소(유료)를 제공하며 화려한 그래픽 유저 인터페이스(GUI)를
제공한다.
버전 관리 시스템 (Version Control System, VCS) 이란?
→ 개발 도중 발생하는 소스코드 및 파일들의 버전을 관리하기 위한 시스템이다.

Git은 Local에서 버전 관리 시스템을 운영하는 방식이며, GitHub는 Cloud 서버 저장소를 이용한다는
것의 차이이다. 따라서 다른 사람들과 협업할 경우, 오픈소스를 공유하고 다른 사람들의 의견을 듣고
싶은 경우 등은 GitHub를 써서 편리하게 기능을 사용할 수 있다. 만약 혼자 작업하거나 폐쇄적인
범위 내에서의 협업이라면 Git만 사용해도 무방하다.
'버전 관리 시스템(VCS)'이란 쉽게 말해 코드가 변경된 부분을 모두 기억해준다는 의미이다. 코드가
수정될 때마다 파일로 일일이 따로 저장해주거나 수동으로 백업해두기는 매우 번거로운 일인데, 이런
일을 대신해준다. 어떤 부분이 수정됐는지 쉽게 볼 수 있고 수정된 부분을 이전 버전으로 롤백 하는
등의 편리한 기능들을 가지고 있다. 코드 수정에 따른 위험성을 줄일 수 있기 때문에 개발자에게
필수적인 시스템이라고 할 수 있다.

1) 복제(Clone)
GitHub 또는 원격 저장소(Remote Repository)를 복제하여 로컬 저장소(Local Repository)에
생성한다. 단, Clone은 Pull과 달리 Local Repository에 아무것도 없는 상태에서 가져오는 것을
의미한다.
2) 추가(add)
수정된 파일을 커밋(Commit) 대상으로 추가한다.
3) 커밋(Commit)
Local Repository에 파일을 추가하거나 변경한 내용을 저장한다.
4) 푸쉬(Push)
GitHub 또는 Remote Repository에 파일을 추가하거나 변경 내용을 저장한다.
5) 풀(Pull)
GitHub 또는 Remote Repository에 Local Repository로 파일을 다운로드한다. 단, Pull은
Clone과 달리 GitHub의 수정 상태를 Local Repository에 반영하기 위해 사용하는 명령어이다.