깃(2)-깃으로 버전 관리하기

hyihyi·2022년 5월 3일
0

용어 정리

워킹 트리

: 워크트리, 워킹 디렉토리, 작업 디렉토리, 작업 폴더 모두 같은 뜻으로 사용된다 일반적으로 사용자가 파일과 하위 폴더를 만들고 작업 결과물을 저장하는 곳을 Git에서는 워킹트리라고 부른다. 정확하게는 작업 폴더에서 [.git] 폴더(로컬저장소)를 뺀 나머지 부분이 워킹트리이다.

로컬저장소

: Git init 명령으로 생성되는 [.git] 폴더가 로컬저장소이다. 커밋, 커밋을 구성하는 객체, 스테이지가 모두 이 폴더에 저장된다.

원격저장소

: 로컬저장소를 업로드하는 곳을 원격저장소라고 부른다. 우리가 사용하고 있는 GitHub 저장소가 원격저장소이다.

Git 저장소

: Git 명령으로 관리할 수 있는 폴더 전체를 일반적으로 Git 프로젝트 혹은 Git 저장소라고 부른다.

<다시 한 번 정리>

워킹트리 : 일반적인 작업이 일어나는 곳
로컬저장소 : .git 폴더, 커밋은 여기에 들어 있다.
작업 폴더 = 워킹 트리 + 로컬저장소
Git 저장소 : 엄밀하게는 로컬저장소를 의미하지만 넓은 의미로 작업 폴더를 의미하기도 한다.

깃 저장소 만들기

깃 초기화하기 - git init

해당 디렉토리에서 깃을 사용할 수 있도록 디렉토리를 초기화하는 것.
Initialized empty Git repository in C:/Users/nhkim/hello-git/.git/ 라는 메시지가 나타난다면 이제부터 해당 디렉토리에서 깃을 사용할 수 있다.

디렉토리 안의 내용을 확인했을 때 .git이라는 디렉토리가 생겨있을 것.
이 디렉토리가 깃을 사용하면서 버전이 저장될 저장소이다.

** 윈도우의 탐색기나 맥 Finder에서 .git 디렉토리가 화면에 나타나지 않을 수 있는데 이것은 사용자가 실수로 .git 디렉토리를 지우지 않도록 숨어있기 때문이다. 윈도우 탐색기에서는 [보기] 탭에서 '숨긴 항목'을 체크하고 맥이라면 Shift + Commad + . 를 눌러 숨은 파일을 확인해보자.

버전 만들기

스테이지와 커밋 이해하기


스테이지와 저장소는 눈에 보이지 않고 깃을 초기화했을 때 만들어지는 .git 디렉토리 안에 숨은 파일 형태로 존재하는 영역.

깃이 버전을 만드는 과정

  1. hello.txt 파일 문서를 수정하고 저장하면 그 파일은 작업 트리에 있음.

  2. hello.txt 파일을 버전으로 만들고 싶을 때 스테이지에 넣음.

  3. 파일 수정을 끝내고 스테이지에 넣었으면 버전을 만들기 위해 깃에게 '커밋(commit)'명령을 내림

  4. 커밋 명령을 내리면 새로운 버전이 생성되면서 스테이지에 대기하던 파일이 모두 저장소에 저장됨

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

깃 상태 확인

$ git status

  1. On branch master : 현재 master 브랜치에 있음
  2. No commits yet : 아직 커밋한 파일이 없음
  3. nothing to commit : 현재 커밋할 파일이 없음

깃에서는 한 번도 버전 관리하지 않은 파일을 untracked files라고 부름

<현재까지의 상황을 그림으로 나타낸 것>

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

깃에게 버전 만들 준비를 하라고 알려주는 것을 '스테이징(staging)' 또는 '스테이지에 올린다'라고 표현함

스테이징할 때 사용하는 명령어

**입력해도 아무 내용도 안 나타날 수 있음

$ git add hello.txt

**윈도우의 줄바꿈 때문에 warning이 나타날 수 있지만 무시해도 됨.

git status로 상태 확인하면 untracted files:이라는 문구가 changes to be committed:로 바뀜

<현재까지의 상황을 그림으로 나타낸 것>

new file:이라는 수식어는 '새 파일 hello.txt를 (앞으로) 커밋할 것이다'라는 뜻

스테이지에 올라온 파일 커밋하기 - git commit

파일이 스테이지에 있다면 이제 버전을 만들 수 있다.
깃에서는 버전을 만드는 것을 간단히 '커밋(commit)한다'고도 말한다.
커밋할 때는 그 버전에 어떤 변경 사항이 있었는지 확인하기 위해 메시지를 함께 기록해둬야 한다.

파일을 커밋하는 명령어

$git commit -m "message1"


-->파일 1개가 변경되었고, 파일에 1개의 내용이 추가되었음
스테이지에 있던 hello.txt 파일이 저장소에 추가됨


-->버전으로 만들 파일이 없고(nothign to commit) 작업 트리도 수정사항 없이 깨끗(working tree clean)

저장소에 저장된 버전 확인하는 명령어

<현재까지의 상황을 그림으로 나타낸 것>

스테이징과 커밋 한꺼번에 처리하기 git commit -am

한 번이라도 커밋한 적 있을 때의 파일을 다시 커밋할 때만 사용 가능

$ git commit -am "message2"
profile
자유롭게 쓴 나의 자유로운 Development voyage⛵

0개의 댓글