[Git] Git 용어

Bam·2022년 3월 3일
0

Git

목록 보기
3/32
post-thumbnail

지난번은 Git을 시작하는 방법에 대해 알아봤었습니다. 이번에는 본격적으로 깃을 사용하기 앞서, 깃에서 사용되는 용어들에 대해 알아보고 넘어가도록 하겠습니다. 앞으로도 쭉 등장하는 용어이니만큼 이론이라고 넘기지 말고 같이 공부해봅시다.

버전

Version, 버전이라는 말은 프로그램들을 설치, 사용 혹은 개발을 해보면서 많이 들어본 단어일 수도 있습니다. 아니면 당장 깃을 깔면서 2.31.1(작성 당시 최신)라는 번호가 있었죠. 아니면 보고서를 올리면서 '보고서최종', '보고서최종_최종'이라는 것도 버전이라고 할 수 있고요. 프로그램으로 예를 들자면, 프로그램에서 버전이라함은 보통 변경사항(기능 추가 혹은 수정)이 생길때마다 프로그램에 붙는 식별 메모입니다.

깃에서 말하는 버전도 프로그램의 버전과 크게 다르지 않습니다. 깃의 버전은 문서를 수정하고 저장하게 되면 생기는 식별 메모입니다. 크게 다르지 않다고 했지만, 사실상 같은 개념이라고 해도 무방하네요.

그렇다면 왜 깃으로 버전관리를 해주는가? 입니다. 물론 굳이 깃을 쓰지않고 파일을 따로 저장하며, 파일명 등으로 소스 코드의 변경을 기록하고 메모해도 됩니다. 그러나 이런 방식에는 수정 시각이나, 수정한 내용, 작성자들의 구체적인 정보를 일일히 메모 해두기란 쉽지 않은 일 입니다. 그래서 이러한 버전 관리를 편하게 할 수 있도록하는 것이 깃이고 그렇기에 우리는 작업 효율의 향상을 위해 깃을 배워야 하는 것 입니다.

자, 그럼 깃을 이용한 버전 관리의 필요성은 이쯤하고 본론인 깃의 작업 공간들을 소개해보겠습니다.첫 소개에서 깃이 사용하는 공간은 작업 공간, 스테이지, 깃 디렉토리(리포지토리 혹은 저장소)가 있다고 했었는데요. 본격적으로 이들이 정확히 무엇을 이야기하는지 알아보도록하겠습니다.

작업 공간

작업 공간(작업 트리)은 프로그래머가 실제로 작업하는 공간을 일컫습니다. 이 공간은 우리가 실제로 볼 수 있는 공간입니다. 이 곳에서 문서의 작성이나 수정, 저장 등을 하는 실질적 작업공간입니다. 이 공간은 우리가 흔히 보는 폴더와 같은 것이므로 따로 설명하지 않겠습니다.

스테이지 Stage

작업 공간은 알겠는데 스테이지라는 낮선 단어가 등장합니다. 스테이지(Stage)는 작업 공간에서 작업 한 파일들을 버전으로 만들기 전에 대기하고 있는 공간입니다. 작업 공간에서 스테이지로 파일을 옮기는 과정을 스테이징(Staging)이라고 합니다.

리포지토리 Repository

저장소/리포지토리/.git Directory 모두 같은 것을 일컫는데, 앞으로는 리포지토리라는 단어로 통일해서 사용하겠습니다. 한글로 했을 때 저장소라고 함에서 느낄 수 있듯이 리포지토리는 버전으로 만들어진 파일들이 최종적으로 저장된 곳입니다. 다시 정리하면, 리포지토리는 스테이지에서 대기하던 파일들을 버전으로 만들면 저장되는 공간입니다. 이렇게 스테이지에 대기하는 파일을 커밋(commit)하면 버전이 만들어지고 리포지토리에 저장됩니다.

.git 디렉토리에 대하여

우선 지난번에 빈 폴더를 만들고 git init명령을 하니 빈 폴더에 .git 디렉토리가 숨김 처리가 된 채로 폴더가 초기화되었습니다. 작업 공간은 우리 눈에 보이는 곳이라고 했으니 넘어가고, 스테이지와 리포지토리를 위한 공간이 바로 이 .git폴더 내부에 들어있습니다. 그래서 Git에 있어서 중요한 공간이기 때문에 함부로 수정/삭제를 막기 위해 숨김 처리가 되어있다고 했습니다.

정리

마지막으로 작업 공간에서 작업 하던 파일을 버전을 만들어 리포지토리에 저장되기 까지를 정리하겠습니다. 그림으로 만들었기에 이해에 도움이 되었으면 좋겠습니다.

파일을 작성하고 스테이징을 합니다. 원본 파일은 유지되면서 스테이지에 파일이 복사됩니다. 스테이지에 있던 파일을 커밋하면 스테이지에서 리포지토리로 버전이 만들어지며 최종적으로 저장됩니다. 당연히 원본 파일도 유지됩니다.

0개의 댓글