본문 바로가기
협업툴/Git

[Git] 기본 개념 정리

by 발담그는블로그 2021. 7. 23.

Git 역할

형상 관리를 할 수 있는 협업 도구이다. 모든 파일들의 지난 내역들을 저장해둔다. 

 

 

Git 흐름도

(1) -> (2) -> (3) -> (4) 순서대로 진행한다.

(1) Working Directory

우리가 작업하고 있는 파일.

* untracked

- 새로 만들어져서 추적이 아직 되지 않은 파일

* tracked

- 추적이 된 파일
- unmodified와 modified로 나누어지고, 이 때 modified된 파일들만 Staging Area로 넘어갈 수 있다.

(2) Staging Area (add)

commit할 준비가 되어있는 파일들을 올리는 장소.

(3) .git Directory (commit)

버전의 히스토리를 가지고 있다.

(4) remote (push)

(1), (2), (3)이 모두 로컬에서 진행되는데, 이 진행되는 것을 서버에 업로드한다.

 

 

Git 대표 사용법

<Reset - 과거로 돌아가기 (그 이후 로그는 삭제)>

출처: 얄팍한 코딩사전

즉, 그림에서 살펴보면 "ADD dog"과거로 돌아가고, 현재의 "ADD MODIFY DELETE" 트랜잭션은 삭제하는 방식

git log
git reset 일련번호앞6글자 --hard	// 여기서 일련번호는 돌아가고싶은 장소

 

<Revert - 과거로 돌아가기>

가장 최신의 트랜잭션을 reset하여, 과거로 돌아간다. 이 때, 앞에 설명했던 Reset과는 달리 로그가 남아있다.

git log
git revert 일련번호앞6글자 		// 여기서 일련번호는 가장 최근 트랜잭션

이렇게 실행한뒤, commit 메세지가 뜨면 ;q 입력한다. (그대로 저장하겠다는 명령어)

 

<branch를 활용한 작업>

출처: 얄팍한 코딩사전

git branch 이름			// git branch 생성 (git my-idea)
git branch		         // 생성된 git branch 확인
git checkout master		 // 이전 master 상태로 돌아가기 (git checkout master)
git branch -D my-idea	 	// 다쓴 branch 삭제하기

 

<Merge - 다른 브런치에서 가져오기>

출처: 얄팍한 코딩사전
출처: 얄팍한 코딩사전

git checkout master		  	 	// 변화된 branch를 가져와야할 장소
git merge my-another-idea  			// 가져올 장소
git log --graph --all --decorate		// branch 그래프 확인

 

<Reverse - 다른 브런치에서 가져오기>

출처: 얄팍한 코딩사전

Merge에서는 branch graph가 여러 갈래로 파생된다. 하지만 Reverse를 이용하면 하나의 graph로 구현할 수 있다.

 

출처: 드림코딩 by 엘리 (유튜브), 얄팍한 코딩사전 (유튜브)