GIT..Git....그는 누구인가...?
버전관리시스템 (Version Control System)은 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다.
이렇게 하게 되면 프로젝트를 통째로 이전 상태로 되돌릴 수도 있고,VCS를 사용하면 파일의 이력을 알 수 있고, 파일을 잃어버리거나 잘못 고쳤을 때도 쉽게 복구할 수 있다.
한 컴퓨터에서 디렉토리를 시간별로 복사하여 저장하는 방법이다.
프로젝트를 진행하다보면 다른 개발자와 함께 작업해야하는 경우가 생긴다. 이 때 할 수 있는 가장 무식한 방법은 각자 작업해서 프로젝트를 합치는 거다.
하지만 이런 시스템의 등장으로 협업의 간편성이 생겼다. 클라이언트가 중앙 서버에서 파일을 받아서 사용하는 방식이다.
하지만 가지는 치명적 단점은 중앙 서버에서 문제가 생겼을 때, 협업도 안되며 백업도 안된다는 점이다.
분산 버전 관리 시스템은 서버 컴퓨터만 모든 프로젝트 DB를 가지고있지않는다. 클라이언트들도 저장소를 전부 복제한다. 그래서 서버가 문제가 생겼을때에도 클라이언트를 통해 서버가 복원될 수 있다.
또한 리모트 저장소가 여러 개 존재 가능하기 때문에 사람들이 동시에 다양한 그룹과 방법으로 협업할 수 있는 것이다~~
Git 또한 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 관리 시스템이다.
다른 버전 관리시스템들과 달리 데이터를 파일시스템 스냅샷으로 취급하고 크기가 작아 빠르다는 장점이 있다~~
설치확인
git --version
환경 설정
git config --global user.name 아이디
git config --global user.email 이메일 주소
환경 설정 확인
git config --list
Repository :: 저장소를 의미, 저장소는 히스토리, 태그, 소스의 가지치기 혹은 branch에 따라 버전을 저장함.
저장소를 통해 작업자가 변경한 모든 히스토리를 확인할 수 있다.
Working Tree :: 저장소를 어느 한 시점을 바랍는 작업자의 현재 시점이다.
Staging Area :: 저장소에 커밋하기 전에 커밋을 준비하는 위치
Commit :: 현재 변경된 작업상태를 점검을 마치면 확정하고 저장소에 저장하는 작업
Head :: 현재 작업중인 Branch
Branch :: 가지 또는 분기점, 작업을 할때 현재 상태를 복사하여 Branch 에서 작업을 한 후 완전하다 싶을 때 Merge 한다.
Merge :: 다른 Branch의 내용을 현재 Branch로 가져와 합치는 작업
이렇게 Git은 사용시 기본 서버 디렉토리가 필요하다. 이 때 서버 디렉토리 역할을 github 에서 해주는 것이다......그걸 클론해와서 로컬에서 작업하고 하는 것이다.
git을 활용하는 방법으로 github가 있다는 것!
참고자료 ::
https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EA%B8%B0%EC%B4%88