CVS
: 중앙 저장소에 파일을 관리하며 롤백이 불가능하다.SVN
: CVS 단점을 보완하였다. (ex. 롤백기능 추가)Git
: 분산형 관리 시스템, 로컬과 중앙에서 관리가 가능하다.working copy, working tree라고도 한다.
실제 작업하는 공간이다. 즉, pc에서 내가 작업하고 있는 공간이다.
파일을 commit하기 위해 모은 장소이다. add명령어를 통해 이 곳에 모인다.
파일을 commit하면 저장되는 로컬 데이터베이스이다.
github가 해당하는 원격 저장소이다.
Working Directory -> Staging Area
add를 통해 커밋하고 싶은 파일을 모은다.(index에 모음)
파일 생성 후 처음 add했다면 그 파일은 git이 추적할 수 있게 된다.
Staging Area -> Local Repository
현재 작업 내용의 세이브 데이터가 내 컴퓨터에 저장된다. 이를 통해 언제든지 커밋한 시점으로 돌아갈 수 있다.
Local Repository -> Remote Repository
커밋한 파일을 github에 올린다. github에 올린 파일은 다른 사람과 공유할 수 있다.
Remote Repository -> Working Directory
github의 내용을 Working Directory 로 가져오고 기존에 있는 내용과 병합한다.
보통 local repository와 remote repository가 연결되어 있고 수정된 내용을 동기화 시킬 때 사용한다.
Remote Repository -> Working Directory
github의 내용을 Working Directory로 복사한다.
github 상태 == Working Directory가 되므로 이전에 작업하던 내용이 있다면 따로 저장하거나 백업해야한다.
보통 Local Repository에 파일이 없고 처음 가져올 때 사용한다.
현재 원격 저장소에 있는 파일들을 다른 원격 저장소에서 복사한다.
같은 파일을 가지고 독립적으로 개발하는 환경이다.
branch로 작업한 내용을 하나로 합친다.
출처
git, github: https://goddaehee.tistory.com/91
git 용어: https://sjh836.tistory.com/37
git 사진: http://osteele.com