버전이 어떻게 만들어지지, 또 버전을 어떻게 관리할 수 있는지
1. 버전 관리의 큰 그림
2. 버전 관리 맛보기
3. 버전이 쌓여 사용자에게 선보여지기까지
1. 버전 관리의 큰 그림
* 깃이 관리하는 세 공간 : 작업 디렉터리(working directory), 스테이지(stage), 저장소(repository)

- 작업 디렉터리(working directory) = 작업 트리(working tree) : 우리의 프로젝트가 위치할 공간, 우리의 프로젝트가 위치할 공간 (= .git 숨김 폴더가 놓여있는 곳, 버전 관리의 대상이 위치하는 공간
깃을 이용해 작업 디렉터리 내에 위치한 파일 및 폴더의 현재 상태를 버전으로 만들고, 만들어진 버전을 관리할 수 있음
- 스테이지(stage) : 변경 사항이 있는 파일 중 다음 버전이 될 후보가 올라가는 공간
- 저장소(repository) : 버전이 만들어지고 관리되는 공간

1) 작업 디렉터리 내 변경 사항 발생

2) 버전이 될 후보 : 스테이지로 옮기기
2. 버전 관리 맛보기
1) 첫 버전 만들기
- 로컬 저장소 만들기
- 버전을 관리할 대상 만들기
- 커밋 메시지 작성하기 (커밋 메시지 : 버전을 설명하는 메시지)
-> 내가 지금 어떤 파일을 어떻게 변경했는지, 왜 이렇게 변경했는지 등
2) 커밋 쌓아 올리기
3) .gitignore로 무시하기
.gitignore 파일 : 무시할 파일/폴더 목록을 적은 파일
3. 버전이 쌓여 사용자에게 선보여지기까지
1) 커밋 자세히 보기
커밋들을 구분할 수 있는 방법 : 커밋 해시
각 커밋에는 고유한 커밋 해시가 있음 (커밋 해시 : 각 커밋이 가진 고유한 ID)
2) 태그를 붙여 릴리스하기
릴리스(release) : 개발한 소프트웨어를 사용자에게 선보이는 것
사용자에게 선보이는 버전을 표기하는 방법 : 커밋 해시 x
(커밋 해시 : 무작위한 문자열 -> 가독성이 좋지 못함 -> 유의미한 커밋(버전) 찾기 어려움)
태그(tag) : 특정 커밋에 붙일 수 있는 꼬리표 -> 커밋이 여러 개 있는 상황에서도 의미 있는 커밋이 무엇인지 한눈에 알아보기 쉬움
대중적인 소프트웨어 버전 표기법 : vX. Y. Z : 주(Major) 버전 / 부(Minor) 버전
주(Major) 버전 : 가장 중요한 버전 -> 새롭게 내놓은 버전이 기존에 내놓은 버전과 호환되지 않을 정도로 큰 변화가 있을 때 증가
부(Minor) 버전 : 새롭게 내놓은 버전이 기존에 내놓은 버전과 문제없이 호환되지만, 새로운 기능을 추가했을 때 증가
수(Patch) 버전 : 기존에 내놓은 버전과 문제없이 호환되며 버그를 수정한 정도의 작은 변화가 있을 때 증가
요약 : 하나의 버전을 만드는 과정
1) 작업 디렉터리 내의 파일을 변경하기
2) 변경한 내용 중 버전에 포함할 파일을 스테이지에 올리기
3) 커밋하기
+) .gitignore를 작성해 버전 관리를 하지 않을 파일이나 폴더를 자동으로 걸러낼 수 있음
- 각 커밋에는 '커밋 해시'라는 고유한 문자열이 있고, 이렇게 쌓이고 쌓인 커밋에 태그라는 꼬리표를 붙일 수 있음. 이 꼬리표 안에는 보통 버전을 작성하는 규칙에 따라 작성된 버전을 명시하고, 사용자에게 내놓을 준비가 끝나면 이를 릴리스하게 됨.
'공부 > Git, GitHub' 카테고리의 다른 글
| [모두의 깃&깃허브]6. 명령어로 버전 관리하기 1 (0) | 2024.06.02 |
|---|---|
| [모두의 깃&깃허브]3장. 버전 가지고 놀기 (0) | 2024.05.30 |
| [모두의 깃&깃허브]1장. 준비하기 (0) | 2024.05.28 |
| [github]특정 커밋까지 새로운 브랜치 만들기 (0) | 2024.04.06 |
| [github]특정 커밋만 머지하기 (cherry-pick) (1) | 2024.01.31 |