Machineboy空

Git&GitHub 입문 : 2장 깃으로 버전 관리하기 본문

Computer/개념

Git&GitHub 입문 : 2장 깃으로 버전 관리하기

안녕도라 2024. 7. 17. 21:02

1) 깃 저장소 만들기

저장소를 만들고 싶은 디렉터리로 이동해서 깃을 초기화하면 그때부터 해당 디렉터리에 있는 파일들을 버전관리할 수 있습니다.

$ git init

 

mac 기준 $ 다 생략해도 되더라!

 


2) 버전 만들기 (add, commit)

버전이란?

  • 문서를 수정할 때마다 간단한 메모와 함께 수정 내용을 스냅숏으로 찍어서 저장한다.
  • ver.0.1 , ver.0.2 ...
  • 프로그램 개발에서는 수정 내용이 쌓이면 새로 번호를 붙여서 이전 상태와 구별한다. 이렇게 번호 등을 통해 구별된 것을 버전이라고 부른다.

깃에서 버전을 관리하면 원래 파일 이름은 그대로 유지하면서 파일에서 무엇을 변경했는지를 변경 시점마다 저장할 수 있습니다. 또 각 버전마다 작업했떤 내용을 확인할 수 있고 그 버전으로 되돌아갈 수도 있습니다.

 

// 깃 상태 확인
$ git status

// 새로운 파일 만들기
$ vim hello.txt

 

// staging
git add 파일명

// commit
git commit -m "message"

// 버전 확인
git log

// staging & commit 한번에
git commit -am "message 2"

working tree - stage - repository 로 저장되는 흐름을 알아두자!


3) 커밋 내용 확인하기 (log, diff)

  • commit hash, git hash : 커밋을 구별하는 아이디
  • commit log : git log 명령을 입력했을 때 나오는 정보를 묶어 commit log라고 함.
// 커밋 기록 살펴보기
git log

// 변경 사항 확인하기
// working tree vs stage, stage vs repository 비교해서 검토하할 수 있다.
git diff

// 수정 취소하기
git checkout

 

* vim 편집기 사용법

  • vim 파일명
  • I : insert 모드(텍스트 입력, 수정 등)
  • 텍스트 입력
  • esc : ex 모드(저장, 종료 등)
  • :wq (편집 중이던 문서를 저장하고 종료한다. 파일 이름을 함께 입력하면 그 이름으로 저장한다.)


4) 버전 만드는 단계마다 파일 상태 알아보기

파일 상태

  • tracked: 한 번이라도 커밋을 한 파일의 수정 여부를 계속 추적한다.
    • unmodified: 수정전 작업 트리(working tree)에 있는 파일의 상태
    • modified: 수정 후 상태
    • staged: stage에 올라가 커밋 직전의 상태
  • untracked: 한 번도 깃에서 버전 관리를 하지 않은 파일은 수정 내역을 추적하지 않는다.

// 커밋에 관련된 파일까지 함께 살펴보기
git log --stat

// 방금 커밋한 메세지 수정하기
git commit --amend


5) 작업 되돌리기

스테이지에 올렸던 파일을 내리거나 커밋을 취소하는 등 각 단계로 돌아가는 방법에 대해 알아보자

// 작업 트리에서 수정한 파일 되돌리기
git checkout

// 스테이징 되돌리기
git reset HEAD 파일 이름

// 최신 커밋 되돌리기
git reset HEAD^

git reset --soft HEAD^ : 최근 커밋 하기 전 상태로 되돌리기
git reset --mixed HEAD^ : 최근 커밋과 스테이징 하기 전 상태로 되돌리기, defualt 옵션
git reset --hard HEAD^ : 최근 커밋과 스테이징, 파일 수정 하기 전 상태로 되돌리기

 

 


git config user.name 'easys' 깃 환경에서 이름을 'easys'로 지정합니다.
git config user.email 'doit@easys.co.kr' 깃 환경에서 메일을 'doit@easys.co.kr'로 지정합니다.
git init 현재 위치에서 지역 저장소를 만듭니다.
git status 깃 상태를 확인합니다.
git add ch01.txt ch01.txt 파일을 스테이지에 올립니다.
git commit -m 'ch01' 커밋 메시지 'ch01'를 붙여 커밋합니다.
git commit -am 'ch02' 메시지 'ch02'를 붙여서 스테이징과 커밋을 동시에 합니다.
git log 커밋 정보를 확인합니다.
git diff 최근 버전과 작업 폴더의 수정 파일 사이 차이를 보여줍니다.
git checkout 커밋해시 지정한 커밋 해시로 이동합니다.
git reset HEAD^ 가장 최근 커밋을 취소합니다.
git reset 커밋해시 지정한 커밋 해시로 이동하고 이후 커밋은 취소합니다.
git revert 커밋해시 지정한 커밋 해시의 변경 이력을 취소합니다.