Notice
Recent Comments
Link
Today
Total
12-20 18:44
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
관리 메뉴

nayonngme

1. 버전 관리란? 본문

Computer language/GIT

1. 버전 관리란?

nayonng 2023. 5. 14. 04:11

0. 버전 관리에 대한  기본 개념

.git 숨김 폴더가 있는 곳은 프로젝트가 위치할 공간 = 작업 디렉토리 = 작업 트리(working tree)

ㄴ 깃을 이용해 작업 디렉러리 내에 위치한 파일 및 폴더의 현재 상태를 버전으로 만들고, 만들어진 버전을 관리할 수 있음

ㄴ 즉, 작업 디렉터리는 버전 관리의 대상이 위치하는 공간

 

'버전을 만든다' = 특정 순간의 변경 사항을 기억한다

ㄴ 따라서 작업 디렉터리에 있는 프로젝트에 변경 사항이 생기는 순간 새로운 버전을 만들 수 있음

 

모든 변경 사항을 새로운 버전으로 만들 필요는 없음

- 새로 만들 버전과는 관련 없거나, 새로운 버전으로 만들만큼 중요하지 않거나, 임시로 변경했구나, 실수로 변경한 경우 등은 변경 사항이 있더라도 굳이 새로운 버전으로 만들지 않아도 됨

=> 새로운 버전을 만들기 전에 작업 디렉터리 내에서 변경 사항이 생긴 파일 중 '다음 버전이 될 후보를 선별하는 작업'이 중요함

 

깃으로 버전을 만들 때는 작업 디렉터리 내에서 변경된 파일들 중에서 새로운 변경이 될 파일만 특별한 공간으로 옮기는 작업을 거침

ㄴ 특별한 공간 = 스테이지 = 변경 사항이 있는 파일 중 다음 버전이 될 후보가 올라가는 공간 = 스테이징 영역(staging area) = 인덱스(index)

ㄴ 즉, 버전을 만들기 위해 작업 디렉터리에 있는 파일에 변경 사항을 만드록 이 변경 사항들 중 새로운 버전으로 만들려는 파일을 선택해 스테이지로 옮김

ㄴ 작업 디렉터리는 프로젝트가 위치한 공간으로 눈으로 직접 볼 수 있지만, 스테이지는 명시적으로 보이지 않음

 

다음 버전이 될 후보들을 스테이지로 모두 옮기고, 스테이지에 있는 파일을 바탕으로 새로운 버전을 만들면 새 버전이 저장소에 추가됨

ㄴ 작업 디렉터리에서 만들어진 모든 버전들의 내역이 저장소에 있음

ㄴ 즉, 저장소는 버전이 만들어지고 관리되는 공간

ㄴ 스테이지와 마찬가지로 사용자에게는 저장소가 명시적으로 보이지 않음

ㄴ 스테이지에 올라온 파일을 토대로 새로운 버전을 만들면 새로운 버전이 될 후보가 더이상 존재하지 않으므로 스테이지가 비워짐

 

--

이러한 과정을 반복하며 저장소에 새로운 버전이 쌓이게 됨

ㄴ 이떄 작업 디렉터리에서 버전이 될 후보 파일을 스테이지로 옮기는 것을 '스테이지에 추가한다(add)' 또는 '해당 파일을 스테이지시킨다(staged)'라고 표현함

ㄴ 스테이지에 추가된 파일을 '추가된(add)' 파일 또는 '스테이지된(staged) 파일' 이라고 표현함

 

저장소에 새로운 버전을 만드는 것을 '커밋한다(commit)' 한다고 함

ㄴ 저장소에 저장된 각각의 버전들을 '커밋'이라고 하기도 함

 

정리하자면, 작업 디렉터리의 파일은

1. 변경 사항 생성
2. add
3. commit

과정을 통해

1. 작업 디렉터리
2. 스테이지
3. 저장소

순으로 이동하며 새로운 버전으로 만들어짐

 

Comments