[GIT] 입문, 구조, 작동 순서에 대해 알아보자

GIT을 왜 써요?
-
버전 관리 도구: 버전별로 브랜치를 설정하여, 버전 관리가 쉬워진다.
-
협업 도구 : 다른 기능을 개발하며 최종적으로 나와 동료의 코드를 합칠 수 있으며, 각각 독립적으로 버전을 관리할 수도 있다.
-
분산 작업도구: SVN(subversion) 중앙관리 버전관리 도구와 대비되며, 서로의 작업 상태를 쉽게 공유할 수 있고, 코드의 충돌(conflict)도 쉽게 해결할 수 있다.
GIT의 구성

Working directory
-
현재 작업 공간
-
Git이 관리하고 있지만, Untracked 상태로 구분
-
CTRL+S를 통해 파일을 저장했다면 Working directory에 저장된 것
Index = Stage = Staging area
-
원격 저장소로 옮길 준비 공간
-
Git이 추적하고 있는 Tracked상태로 구분한다. 버전으로 등록되기 전의 상태다.
Repository
-
Local repository: PC에 있는 저장소
-
Remote repository: Github와 같은 원격에 있는 저장소
GIT 작동 순서

- git init: 현재 디렉토리에 .git 폴더를 생성한다. 디렉토리 하위의 파일들을 추적할 수 있으며, Git과 관련된 작업을 할 수 있다.
- git add: working directory의 변경된 작업 파일을 staging area로 추가시킨다.
- git commit: Staging area에서 Local repository로 파일을 보낸다.
- git push: Local Repository의 내용을 Remote Repository로 업로드한다.
- git clone, git pull: 원격저장소에서 로컬저장소로 가져온다. git clone은 local에 아무것도 없는 상태에서 원격저장소의 데이터를 가져오는 것을 의미하며, git pull은 local에 이미 있고, 원격저장소의 수정상태를 반영하기 위해 하는 것이다.
Reference
Git 공식 문서: https://git-scm.com/book/en/v2
Git 공식 문서 (한글판): https://git-scm.com/book/ko/v2