본문 바로가기
개발/Git

2. git의 기초 개념

by Remover 2020. 6. 14.
반응형

Git에서 버전이라는 것은 문서를 수정하고 저장할 때마 다 생긴다고 이해하면 편합니다.

https://www.dogdrip.net/index.php?mid=dogdrip&document_srl=165756266&cpage=1

항상 버전을 위 사진처럼 고나리하다보면 다른 이름으로 저장도 해야하고 어떤게 최종인지도 헷갈릴 때도 존재합니다. 파일의 개수가 100개, 200개, 1000개가 되면 관리가 더욱 힘들겠죠? 

Git에서는 각 버전마다 작업 했던 내용을 확인 할 수도, 되돌리기도 할 수 있습니다.

 

파일에 대한 변화를 저장하는 시스템(VCS) 과 시간순으로 프로젝트의 스냅샷을 저장(git)

Git은 어떻게 파일 이름을 유지하면서 수정 내역을 기록할까요?

git에는 Working Directory, 스테이지(stage)와 저장소(repository) 라는 개념이 존재합니다.

작업공간(Working Directory)

파일 수정, 저장 등의 작업을 하는 디렉토리

 

스테이지(Stage)

버전으로 만들 파일이 대기하는 공간, 예를 들면 작업 트리에서 2개의 파일이 수정됐을 때 1개의 파일만 버전으로 만들기 위해서는 1개의 파일만 스테이지로 넘겨주면 됩니다. 

작업 공간에서 작업한 파일을 스테이지에 추가하기 위해서는 add라는 명령어를 사용합니다.

 

저장소(Repository)

스테이지에서 대기하고 있던 파일들을 버전으로 만들어 저장하는 곳입니다.

스테이지에서 저장소로 보내 새로운 버전을 만들기 위해서는 커밋(Commit)이라는 명령어를 사용합니다.

 

 

 

Git 작업 공간 만들기

$ git init

 

git init 명령어를 통해 git 작업 공간을 만듭니다.

 

Git 상태확인

$ git status

Git status 명령어를 통해 git의 상태를 확인할 수 있습니다.

 

 On branch master : 현재 master branch를 사용중을 표시합니다.

 No commits yet : 아직 commit 한 파일이 존재하지 않습니다.

 nothing to commit : 현재 commit 할 파일이 존재하지 않습니다.

 

파일을 하나 생성해보도록 하겠습니다.

$ vi hello.txt


테스트입니다.

:wq

vi editor에서는 :wq를 입력하여 파일을 저장하고 닫을 수 있습니다.

$ git status
On branch master

No commits yet

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

nothing added to commit but untracked files present (use "git add" to track)

hello.txt 파일을 생성하자 처음과는 다른 메시지가 나타납니다.

Untracked file, Git에서는 한번도 버전 관리를 하지 않은 파일을 Untracked files라고 부릅니다.

 

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

$ git add hello.txt
$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   hello.txt

수정한 파일을 스테이징 하기 위해서는 git add <파일경로/파일명>명령어를 사용하면 됩니다.

작업 공간 내의 모든 파일을 스테이징 하고 싶은 경우

$ git add .

명령어를 통해 모든 파일을 스테이징 할 수 있습니다.

add 명령어 실행 후 status를 통해 확인해보니 hello.txt가 new file로 표시 된 것을 확인 할 수 있습니다.

 

git commit - 스테이징한 파일 버전으로 만들기

스테이징한 파일을 버전으로 만들어보도록 하겠습니다.

$ git commit -m "first commit"
[master (root-commit) 7b2d1b3] first commit
 1 file changed, 1 insertion(+)
 create mode 100644 hello.txt
 
$ git status
On branch master
nothing to commit, working tree clean

$ git log
commit 7b2d1b3c707c1f005345867f3056491533c7620b (HEAD -> master)
Author: jwshin <kianms10310@gmail.com>
Date:   Sun Jun 14 10:54:17 2020 +0900

    first commit

 

commit 명령어를 통해 파일이 변경되었고, 1개의 파일이 추가되었다는것을 확인 할 수 있습니다.

git status를 통해 작업 트리의 수정사항이 없다는 것을 확인 할 수 있습니다.

그렇다면 버전이 만들어졌는지는 어떻게 확인할까요? 

git log 명령어를 통해 확인 할 수 있습니다.

$ git commit -m "first commit"

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: empty ident name (for <jwshin@DESKTOP-CI989OP.localdomain>) not allowed

위에 오류가 나시는 분들은 아래와 같이 설정을 해주시면 됩니다!

$ git config --global user.email "~~~@~~~"
$ git config --global user.name "name"

 

스테이징과 커밋을 분리해서 하기 귀찮은 경우 한꺼번에 처리도 가능합니다.

$ git commit -am "first commit"

-am 옵션을 주게 되면 스테이징과 커밋을 동시에 처리할 수 있습니다!

 

여기까지 git 기초개념과 기본 명령어를 알아보았습니다.

감사합니다.

'개발 > Git' 카테고리의 다른 글

1. Git 설치하기  (0) 2020.06.10

댓글