
VCS 이전 : 최종...최최종...진짜최종...처럼 버전별로 파일을 관리해야 했음. 수동으로 백업해야 했고, 컴퓨터가 다운되면 개발하던 코드가 날라가는 문제점
VCS (Version Control System) : 버전 관리 시스템(형상 관리 시스템). 소스데이터와 히스토리를 관리 => 협업, 작업추적, 복구 가능
VCS 종류
| 종류 | 설명 | 특징 |
|---|---|---|
| 로컬 버전관리(LVCS) | 내 컴퓨터에서 버전을 관리 | 하드 디스크가 고장나면 전체 코드가 사라지며, 협업이 어려움 |
| 중앙집중식 버전관리(CVCS) | 중앙 서버에서 버전을 관리 ex) CVS, SVN | 커밋과 동시에 중앙서버에 적용되어 버그가 다수 발생, 자신만의 히스토리를 관리 어려움, 인터넷 연결 필요로 협업에 제한 |
| 분산형 버전관리(DVCS) | 서버와 로컬에서 버전을 관리. (전체를 클론한 진정한 백업) ex) Git | 커밋하면 개인 저장소에 적용되며, 원하는 순간에 배포(push)가 가능, 자신만의 히스토리 존재, 오프라인 작업 가능 |


Git Repository : Git으로 관리하는 프로젝트 저장소
저장소
저장소 생성 : Git Init 으로 프로젝트 폴더를 만듦과 동시에 생성하거나, Git Clone 으로 원격 저장소에서 복사해오거나
git init은 프로젝트 폴더 직접 들어가서 작성!!!
git clone은 상위 수준에서 작성!!!
(프로젝트 폴더 만들어주고, .git 설치해줌)
git status : 파일상태 확인(Working Directory 와 Staging Area의 상태)
git add <파일이름> : W.D에서 생성된 파일을 S.A(Index)에 추가. Modified 상태 파일을 Staged 상태로 변경
> git add * : 쓰레기까지 같이 올라가니 조심..!
git commit -m <커밋메세지> : S.A(Index)에 있는 파일을 .git Directory(Repository)에 추가
> git commit -a -m <커밋메세지> : git add 까지 한번에
git rm <파일이름> : Git에서 관리하는 파일 삭제.
W.D와 S.A(Index)의 파일을 삭제하고 Commit
> 로컬에서 먼저 삭제하면 Git은 정신못차려벌임;;;
git rm 또 해줘야함!
git mv <예전이름> <새이름> : Git에서 파일이름 변경
> 마찬가지로 로컬에서 변경/이동하면 Git은 어리둥절;;; git mv 또 해줘야함!