Git이란?
Git은 소스코드나 파일의 변화를 추적하는 버전 관리 시스템(VCS, Version Control System)입니다.
Git의 설계 목표는 다음과 같습니다.
- 빠른 속도
- 데이터 통합
- 분산 구조
- 비 선형적 개발 ( 여러 컴퓨터에서 동시에 유지하는 수천개의 브랜치들을 생각해봐요. )
Git을 사용하는 이유
Git을 사용하면 버전 관리가 쉬워집니다.
프로젝트를 진행하면 잦은 업데이트로 인해 변화가 생기는데,
이 때마다 다른 디렉토리로 프로젝트를 따로 저장하는 게 아니라
Git을 통해 똑같은 프로젝트 디렉토리에서 버전 관리를 할 수 있게 합니다.
Git이랑 GitHub는 달라요
Git은 버전 관리 시스템이고,
GitHub는 Git으로 관리하는 프로젝트를 올려둘 수 있는 원격 저장소입니다.
분산형 버전 관리 시스템(DVCS)으로써의 Git
Git은 분산형 버전 관리 시스템이고, 다음과 같은 특징을 가집니다.
- 중앙 서버에 의존하지 않습니다.
- 각 개발자는 프로젝트의 전체 히스토리를 포함한 완전한 복사본을 자신의 컴퓨터에 가지게 됩니다.
- 모든 개발자가 프로젝트의 완전한 백업을 가지고 있는 것이랑 동일합니다.
- 네트워크 독립성
- 원격 저장소 작업을 제외한 대부분을 오프라인에서 수행할 수 있습니다.
- 병렬 작업
- 여러 개발자는, 동시에 여러 브랜치에서 작업할 수 있습니다.
- 백업
- 모든 클론은 사실상 전체 저장소의 백업 역할을 합니다.
Git의 기본 작업 흐름 익히기
보통은 Git을 다음과 같이 사용해요.
- 특정 작업을 수행하면 변경 이력이 생겨요.
- git add 명령어로 변경 이력을 git이 유지할 수 있게 한 뒤,
- git commit 명령어를 통해 변경 이력을 현재 저장소에 반영합니다.
- 반영되지 않은 변경 이력은 보통 git status로 확인해요.
이러한 흐름은 Git의 세 가지 영역을 따라 진행됩니다.
- working directory (작업 디렉토리)
- 실제 작업을 하는 프로젝트 디렉토리입니다.
- staging area
- git add 명령어를 통해 변경 이력을 유지하게 되는 영역입니다.
- repository (저장소, 레포)
- git commit을 통해 변경 이력이 반영되는 장소에요.
- 다시 말해, commit들이 저장되는 영역입니다.
로컬 저장소, 원격 저장소
Git init 명령어를 통해
내 컴퓨터 속 프로젝트 디렉토리를 git 저장소로 만들면,
해당 디렉토리가 바로 로컬 저장소(Local Repository)가 됩니다.
.git 폴더를 포함하는 실제 Git 저장소에요.
내 컴퓨터에 존재하는 프로젝트를, 다른 사람들과 같이 작업하려면
공통된 작업 공간이 필요합니다.
그래서 내 컴퓨터에서 벗어난 다른 원격의 저장소를 두고, 해당 저장소를
모든 사람과 같이 공용으로 사용하는 것입니다.
이렇게 사용되는 원격 저장소가 바로 Github입니다.
다음 글
[Git] Git 내부 구조 알아보기, objects - commit, blob, tree
[ 이전 포스트 ] [Git] 개발자 필수 도구, Git이 뭔데?Git이란?Git은 소스코드나 파일의 변화를 추적하는 버전 관리 시스템(VCS, Version Control System)입니다.Git의 설계 목표는 다음과 같습니다.빠른 속
300-29-1.tistory.com
'프로젝트 생산성' 카테고리의 다른 글
[Git] 협업 필수, 원격 브랜치(remote branch) (0) | 2024.09.14 |
---|---|
[Git] 버전 관리의 꽃 3, 기본이자 유용한 전략 (0) | 2024.09.14 |
[Git] 버전 관리의 꽃 2, 병합하기 (Merge) (0) | 2024.09.14 |
[Git] 버전 관리의 꽃, 브랜치(branch) (3) | 2024.09.14 |
[Git] Git 내부 구조 알아보기, objects - commit, blob, tree (0) | 2024.09.12 |