git 이란
소스코드를 효과적으로 관리할 수 있게 해주는 분산 버전 관리 시스템인
무료, 공개 소프트웨어.
🌎 분산 버전 관리 시스템
버전 관리 시스템
- 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템
- 3가지 ➡️ 로컬 버전 관리, 중앙집중식 버전 관리(CVCS) , 분산 버전 관리.
분산 버전 관리 시스템
✔️ 저장소를 히스토리와 더불어 전부 복제하여, 완전한 기록이 있는 자체 로컬 데이터베이스를 소유
✔️ 서버에 문제가 생기면 이 복제물로 다시 작업하여 서버에 전송할 수 있다는 말.
✔️ 각 파일에서 무엇이 변경되었는지, 언제 변경되었으며 누가 변경했는지, 변경한 이유도에 대해서도 알 수 있다.
👍 참고 https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control
git의 세 가지 상태 & 단계, work flow
Git은 파일을 Committed, Modified, Staged 이렇게 세 가지 상태로 관리한다.
<세 가지 상태>
⭐️ Committed
데이터가 유저의 로컬 데이터베이스에 안전하게 저장됐다는 상태
⭐️ Modified
수정한 파일을 아직 로컬 데이터베이스에는 커밋하지 않은 상태
⭐️ Staged
현재 수정한 파일을 곧 커밋할 것이라고 표시한 상태
<세 가지 단계>
⭐️ working 디렉토리 (워킹 트리)
프로젝트의 특정 버전을 Checkout 한 곳
깃 디렉토리 안에 압축된 데이터베이스에서 파일을 가져와서 워킹 트리를 만든다.
Checkout 하고 나서 수정했지만, 아직 Staging Area에 추가하지 않았으면 Modified인 상태이다.
⭐️ Staging Area
곧 커밋할 파일에 대한 정보를 저장하는 곳
파일을 수정하고 Staging Area에 추가했다면 Staged인 상태이다.
⭐️ Git 디렉토리
프로젝트의 메타데이터와 객체 데이터베이스를 저장하는 곳
다른 컴퓨터에 있는 저장소를 Clone 할 때 Git 디렉토리가 만들어진다.
Git 디렉토리에 있는 파일들은 Committed 상태이다.
work-flow
- 워킹 디렉토리에서 파일을 수정한다.
- 수정한 파일을 Staging Area에 stage 해서, 커밋할 스냅샷을 만든다.
- Staging Area에 있는 파일들을 커밋해서, Git 디렉토리에 영구적인 스냅샷으로 저장한다.
⭐️ velog 보기 ⭐️
'💻Programming > Git' 카테고리의 다른 글
[git] 효율적인 협업을 위한 Git-Flow 이해하기 (사용하는 branch 와 repository 구성) (0) | 2023.06.02 |
---|---|
[git for Mac] mac에서 git 사용법 (0) | 2022.01.16 |