git 개념 잡기
git에 대한 소개는 다음의 사이트에 잘 되어 있습니다.
https://git-scm.com/book/ko/v2
이 글은 전체의 개념을 빠르게 잡고 핵심이 되는 내용 정리한 것입니다.
버젼 관리 시스템에 대하여 잘 모르고 있다면 다음의 글을 정독하길 바랍니다.
csv, svn, perforce와 같은 버젼 관리 시스템(VCS - Version Control System)을 사용해본 분들이라면 이미 익숙 하실 것입니다. 이러한 것들은 모두 중앙집중식 버젼 관리 시스템입니다.
중앙집중식 버젼 관리 시스템은 다음과 같은 구조를 갖고 있습니다.
어러명의 작업자가 하나의 프로젝트를 개발하는데 사용합니다. 만약, 중앙 서버에 장애가 생긴다면 작업에 중대한 지장을 줍니다. 번젼 관리가 되지 않고 그 동안 버젼 관리되고 있는 모든 히스토리들이 일순간에 소실될 수 있는 상황이 됩니다.
Git은 분산 버젼 관리 시스템입니다.
이것이 가장 핵심이며 다음과 같은 구조를 갖습니다.
클라이언트는 단순히 파일의 마지막 스냅샷을 checkout 하지 않습니다. 메인 서버의 히스토리와 더불어 전부 복제합니다. 서버에 문제가 생기면 이 복제물을 사용하여 서버를 복원 할 수도 있습니다.
Git이 왜 좋은가?
자세한 내용은 다음 글을 참고하자
https://pismute.github.io/whygitisbetter/
값 싼 브랜칭
Git의 가장 큰 특징은 보랜칭 모델입니다. 여러개의 로컬 브랜치를 가질 수 있으며 서로 완벽하게 독립적입니다.
로컬 브랜치
로컬 브랜치에서 개발을 한뒤 서버의 Master에 합치는 방식으로 개발합니다.
로컬 브랜치는 모두 자신의 하드디스크에서 동작하므로 인터넷 연결이 되어 있지 않더라도 개발을 진행 할 수 있습니다. 자신의 하드디스크는 오로지 'fetch', 'pull', 'push' 명령을 할 때만 인터넷 연결이 필요합니다.
Staging 영역
Git은 "Staging area" 혹은 "index"라 불리는 것이 있습니다. commit할 것 같은 파일에 넣고 관리하는 일종의 중간 영역입니다. SVN의 경우 이것 저것 작업을 한 다음 이번에 어떤 것들을 commit해야 할지 마지막에 확인합니다. Git은 중간 영역이 있어서 미리 commit 할 것들을 스테이지 영역어 넣어 두고 선별해서 commit 할 수도 있고 한번에 모두 commit 할 수도 있는 매력이 있습니다.
'각종 팁 > git' 카테고리의 다른 글
[git] git 명령이 목록 (1) | 2021.12.26 |
---|---|
[git] Gitlab 사용 방법 with Git-Fork (0) | 2021.12.23 |
[Git GUI] Git-Fork 소개 (0) | 2021.12.23 |
[git] git 저장소 만들기 (0) | 2021.11.01 |
[git] Windows git 설치 하기 (0) | 2021.11.01 |