배경

 깃이란 소스코드를 효과적으로 관리하기 위한 시스템이고 깃의 핵심기능은 버전관리, 백업, 협업이었다. 그 중 버전관리 기능에 대해 알아보려고 한다.  

 

깃으로 버전을 관리한다는 것은

1) 저장소를 만들고, 2)변경사항이 있을때 버전을 생성하고, 3)다시 원상태로 돌리는 것이다. 

이번에는 저장소 생성 및 버전을 생성하는 부분까지 정리해보도록 하겠다. 

 

1. 깃 저장소 만들기


새로운 프로젝트를 하기 위해서 폴더를 만들게 되는데, 이렇게 생성된 폴더의 소스코드들을 관리하기 위해 git을 사용하려고 한다. 그러기 위해 해당 폴더에 깃 저장소를 생성해야 된다. 아래 코드를 따라가자.

 

mkdir project_test // project_test 폴더를 생성
cd ./project_test // project_test 저장소로 이동

git init // project_test 폴더에 저장소를 생성
// Initialized empty Git repository in C:/Users/project_test/.git/ <- 이런식으로 작성되면 해당디렉토리를 깃을 사용할 수 있다.

 

 

2. 깃 버전 생성 및 관리


① 깃의 구조

 깃 버전을 생성하기에 앞서 깃의 구조에 대해 먼저 알아봐야 한다. git은 작업트리, 스테이지, 저장소 세개의 공간으로 나뉘어 지게 된다. 그리고 아래 그림의 add, commit, restore, reset의 명령어를 통해 설정이 되게 된다. 

 - 작업트리 : 파일 수정, 저장등의 작업을 하는 디렉토리로 위에서 보이는 ./project_test 내의 공간을 말합니다.
 - 스테이지 : 버전으로 만들 파일이 대기하는 곳,
                     ./project_test에서 버전을 통해 관리하고 싶은 파일들만 스테이지로 저장하게 된다.

 - 저장소 : 스테이지에 대기하고 있던 파일들을 버전으로 만들어 저장.

 

② 깃 버전의 생성

 깃 버전의 생성 과정을 통해 status, log, add 및 commit명령어의 사용법에 대해 알아보고자 한다.

git status : 현재 작업트리의 git 상태를 확인한다. (기존 버전 대비 변경된 내용의 파일이 있는지?, 신규 생성된 파일이 있는지?)
git log : 해당 branch의 버전 변경 기록을 확인한다.
git add : 변경된 사항이 있을 경우. 신규버전 생성을 위해 스테이지로 변경 내용을 등록한다.
git commit -m : 스테이지에 등록된 변경사항을 반영하여 신규 버전을 생성한다. 
/* 신규파일 등록 */
vi test.txt  // 관리해야할 test.txt 파일 생성
// vim 편집기에서 i를 누른다 (insert : 입력)
// vim 편집기에 a/b/c/d/e를 입력한다.
// vim 편집기에서 esc버튼을 누른 뒤 wq를 작성하고 엔터 (저장후 나가기)

git status // git의 상태를 확인
// Untracked files test.txt 새로 등록한 파일이기에 git에서 추적을 못한다.
----------------------------------------------
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   hello.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        test.txt
-----------------------------------------------



/* 스테이징 */
git add test.txt // 수정 또는 생성한 파일을 스테이지로 등록한다.
git status // git의 상태를 확인
// 스테이지로 test.txt파일이 옮겨저 저장소로 커밋할 상태가 되었다.
----------------------------------------------
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   hello.txt
        new file:   test.txt
----------------------------------------------



/* 저장소로 커밋 */
git commit -m "new file test.txt" // 스테이지에 등록된 파일을 커밋하여 저장소로 옮겨 신규 버전저장
git log // 버전 정보들을 확인한다. 
----------------------------------------------
commit 2a90767a070d85bebdbaa5f54b72b8e5d7043b45 (HEAD -> master)
Author: -----
Date:   Sun Jun 26 14:01:04 2022 +0900

    new file test.txt
----------------------------------------------

 

 

 

 

*Reference

- "깃&깃허브 입문" 이지스퍼블리싱

 

부족한 글이지만 읽어주셔서 감사합니다. 

+ Recent posts