무민은귀여워

[생활코딩 - 지옥에서 온 Git] 버전관리의 본질 본문

IT/Git

[생활코딩 - 지옥에서 온 Git] 버전관리의 본질

moomini 2018. 7. 15. 21:07
반응형

버전관리의 본질

설치 및 실습방법

- Git 공식 홈페이지 ( https://git-scm.com/ )
- 간편하게 실습환경을 마련하는 방법 ( https://git-scm.com/ )

저장소 만들기

프로젝트 파일을 만듭시다. 

1
mkdir gitfth

프로젝트 디렉토리로 들어갑니다. 

1
cd gitfth

현재 디렉토리를 git의 (버전) 저장소로 만듭니다. 

1
git init

git이 관리할 대상으로 파일 등록

파일을 생성합니다. 

1
vim f1.txt

git이 파일을 추적하도록 명령합니다. 

1
git add f1.txt

프로젝트 폴더의 상태를 확인합니다. 

1
git status

버전 만들기 (commit)

만약 vim이 아니라 nano와 같은 에디터가 실행되면 아래 명령을 사용하시면 됩니다.
git config --global core.editor "vim"  

버전에 포함될 버전을 만든 사람에 대한 정보를 설정합니다. 이 설정은 ~/.gitconfig 파일에 저장되고 1번만 해주면 됩니다.

1
2
git config --global user.name "자신의 닉네임"
git config --global user.email "자신의 이메일"

Stage area

git은 commit 전에 add를 꼭해야 합니다. 그 이유는 선택적으로 파일을 버전에 포함시키기 위해서 입니다.


Git directory(Repository), Staging area, working directory의 세 단계가 있다.

Git directory(Repository)Git이 프로젝트의 메타데이터와 객체 데이터베이스를 저장하는 곳을 말한다. Git 디렉토리가 Git의 핵심이다. 다른 컴퓨터에 있는 저장소를 Clone 할 때 Git 디렉토리가 만들어진다.

Staging area프로젝트의 특정 버전을 Checkout한 것이다. Git 디렉토리는 지금 작업하는 디스크에 있고 그 디렉토리에 압축된 데이터베이스에서 파일을 가져와서 워킹 디렉토리를 만든다.

working directoryGit 디렉토리에 있다. 단순한 파일이고 곧 커밋할 파일에 대한 정보를 저장한다. 종종 인덱스라고 불리기도 하지만, Staging Area라는 명칭이 표준이 되어가고 있다.



변경사항 확인하기

로그에서 출력되는 버전 간의 차이점을 출력하고 싶을 때 

git log -p 

버전 간의 차이점을 비교할 때

git diff '버전 id'..'버전 id2'

git add하기 전과 add한 후의 파일 내용을 비교할 때 

git diff


과거의 버전으로 돌아가기

아래 명령은 버전 id로 돌아가는 명령입니다. 

git reset --hard "버전 id" 

버전 id의 커밋을 취소한 내용을 새로운 버전으로 만드는 명령

git revert "버전 id"


reset과 revert의 차이점에 대해서 재미있게 설명하는 카툰입니다. 

http://www.popit.kr/


※ reset : 과거로 되돌리는 것

   revert : 되돌리지만 취소 이력이 남아있다.

   push를 한 상태라면 reset을 해도 로컬에만 기록이 없어져 있을 뿐, 이력이 남는다. 결국 push를 이미 했다면 revert를 선


명령의 빈도와 메뉴얼 보는 방법

git commit --help


반응형
Comments