기록장

깃으로 버전 관리하기 - 02_1 버전 만들기 본문

기술 및 도구/Git

깃으로 버전 관리하기 - 02_1 버전 만들기

HJJJJJ 2022. 9. 14. 13:48
728x90

깃에서 버전이란

 

초안 1 초안 2

이런식으로 수정하면 버전 관리 힘드니까 

만든 시간과 수정내용까지 기록할 수 있는게 버전관리 시스템임

 

스테이지와 커밋 이해하기

깃은 어떻게 파일 이름은 유지하면서 수정내용을 기록하는 걸까?

눈에 안보이는 가상 개념들이 등장하기때매 생소하다 

 

 

-작업트리

가장 왼쪽에 있는 작업트리(working tree)는 파일 수정, 저장등 작업하는 

디렉터리임 앞에서 만들었던 hello-git 디렉터리가 작업트리임 (즉 눈에 보이는거)

 

스테이지 

스테이지(stage)는 버전으로 만든 파일이 대기하는 곳 

스테이징 영역(staging area)이라고도 함 

예를 들어 작업트리에서 10개의 파일을 수정했는데 4개 파일만 버전으로 만들려면 4개의 파일만 스테이지에 넘겨주면돼 

 

 

저장소

저장소는(repository, 리포지토리)는 스테이지에서 대기하고 있던 파일들을 버전으로

만들어 저장하는 곳

*스테이지의 내용은 .git/index파일에 저장되고,

저장소의 내용은 .git/HEAD파일에 저장돼

 

스테이지와 저장소는 눈에 보이지않아 

깃을 초기화했을 때 만들어지는 .gti 디렉터리 안에 숨은 파일 형태로 존재하는 영약이야 

 

git안에 숨어있는 스테이지와 저장소 영약을 상상하면서 버전을 만드는 과정을 살펴볼게

 

hello.txt파일 문서를 수정하고 저장하면

그 파일이 작업트리안에 있게 돼

그리고 수정한 hello.txt파일을 버전으로 만들고 싶을 때 스테이지안에 넣어놔

다른 파일도 수정한 뒤 버전으로 만들겠다면 스테이지에 넣어둬

 

파일 수정을 끝내고 스테이지에 다 넣었으면

버전을 만들기 위에 깃에서 

커밋(commit) 명령을 내려 

그러면 새로운 버전이 생성되면서 스테이지에 대기하던 파일이 모두 저장소에 저장이 돼

 

 

먼저 작업트리에서 문서 수정

수정한 파일 중 버전으로 만들고 싶은 것을 스테이지 영역 즉, 스테이지에 저장

스테이지에 있던 파일을 저장소로 커밋하는 것이 깃의 버전을 만드는 순서

 

실습하다보면 편해짐


작업 트리에서 빔으로 문서 수정하기

자 이제 작업 트르에서 문서를 직접 수정해볼게

 

1. 터미널 창을 열어 hello 디렉터리까지 이동해 

앞에 hello-git 디렉터리에서 깃을 초기화 해서 버전 관리를 할 수 있어

일단 깃 상태를 살펴 볼까? 

$git status

 

2. 깃의 상태를 나타내는 메시지가 나타나 

 

On branch master : 현재 master브랜치가 있어 master브랜치는 다음에 자세하게 설명할게

여기는 저장소에 들어있는 디렉터리와 비슷한 거라고 생각해

No commits yet: 아직 커밋한 파일이 없어

nothing to commit : 현재 커밋할 파일이 없어 

 

3. hello-git 디렉터리에 새로운 파일을 만들어 볼게 

터미널 창에 다음과 같이 입력해서 hello.txt라는 파일을 만들어 

vim hello.txt

 

4.

빔 화면이 나타나면 I나 A를 눌러 입력모드로 바꾸고

간단하게 숫자 1을 입력해봐 그리고 

esc눌러서 ex모드로 돌아간 다음 :wq를 입력하고 엔터를 누르면 수정한 문서를 저장하고 편집기를 종료해

 

5.

터미널 창으로 돌아와서 ls -la를 입력해봐

그러면 방금 만든 hello.txt 파일이 디렉터리 안에 만들어져 있어

 

 

6.다음과 같이 입력해서 다시 한번 깃의 상태를 확인해봐

이번에는 조금 다른 메시지가 나타나지? 

branch master에 hello.txt라는 

untrackde files가 있다고 하네 깃에서는 아직 한번도 버전관리를 하지않는 파일을 

untracked files라고 불러

git status

지금까지 작업트리에서 문서파일을 만들어봤어 그림으로 나타내면 위랑 같음


수정한 파일을 스테이징하기 -git add

 

작업 트리에서 파일을 만들거나 수정했다면 스테이지에 수정한 파일을 추가해

이렇게 깃에서 버전 만들 준비를 하라고 알려주는 것을 

스테이징(staging)또는 스테이지에 올린다 라고 표현해 

 

*스테이징 내용을 .git/index 파일에 저장하기 때문에 스테이지에 올리는 것을

'인덱스(index)에 등록한다'라고도 해

 

1. 깃에서 스테이징할 때 명령어는 git add야 

터미널에서 다음과 같이 입력해도 아무것도 안나타나 그래도 아무일도 안한것은 아니야 

git add hello.txt

*git add 명령을 실행했을 때 경고 메시지(warning)가 나타날 수도 있어

근데 이것은 윈도우 줄바꿈 때문인데 무시해도 ㄱㅊ아 

 

2. 이거 입력해서 다시 깃 상태를 확인해봐 

git status

 

3. untracked files:라는 문구가 changes to be commiitted:로 바꼈을거야

그리고 hello.txt파일 앞에 new file:라는 수식어가 추가로 나타나 

'새 파일 hello.txt를 (앞으로)커밋할 것이'라는 뜻임 

 

 

수정한 파일 hello.txt가 스테이지에 추가되었어 그림으로 나타내면 다음과 같아

이제 버전을 만들 준비가 끝났어 

 

728x90
Comments