Tools

Git 이란, Git 기초 사용법

케얼짱영기 2021. 1. 12. 20:35

(1) Git이란

(2) git config : 초기 설정

(3) git init : 버전관리 시작

(4) git status : 버전관리 파일 확인

(5) git add : 버전관리 파일 추가

(6) git commit : 버전 생성

(7) git log : 버전들의 Log 확인

(8) git diff : 버전 사이의 차이점

(9) git reset : 과거로 되돌아가기

 

'버전'이란 유의미한 완성된 코드 단위이다. 그리고 Git은 이러한 버전을 세련되게 관리할 수 있게 도와주는 툴이다. git을 잘 사용하지 않다보니, 사용할 때마다 헷갈려서 별도의 포스팅을 작성한다.


(1) Git이란

 파일을 편집 전 상태로 되돌리기 위한 가장 간단한 방법은 기존 파일을 미리 복사해두는 것이다. 하지만 이 경우에는 특별하게 파일명을 구분할 수 있게 해주어야 한다는 번거로움이 있다. 또한, 여러 명이 공유한 파일을 동시에 편집할 경우 다른 사람이 변경하고 있는 내용을 지워버릴 수 있다.

 Git은 일종의 버전 관리 시스템이다. 그리고 버전 관리 시스템을 사용하면 아래에 명시해놓은 기능을 사용, 위와 같은 불편함을 줄일 수 있다.

 

  • 소스 코드가 변경된 이력 확인

  • 이전 버전과 비교가 가능

  • 이전 버전으로 되돌리기

  • 업로드하는 파일이 누군가와 편집한 내용과 충돌하면, 경고메시지를 발생

 


(2) git config

Git을 처음 사용할 때, 이름, 이메일 주소를 설정하여 추후에 만들어지는 버전이 누가 만들었는 지를 알 수 있게 한다.

$ git config --global user.name "이름"
$ git config --global user.email "이메일 주소"
$ git config --list        // 입력한 사용자 정보 조회


(3) git init

현재 디렉토리를 Git의 저장소로 등록하고 관리하는 것을 시작한다.

$ git init    //현재 디렉토리를 Git의 저장소로 등록

git init 명령어 실행 후, 버전을 관리하며 생성되는 정보들이 .git 디렉토리에 저장된다.

 


(4) git status

현재 관리하고 있는 파일과 그렇지 않은 파일을 확인할 수 있다.

$ git status

디렉토리에 아무것도 없을 때
t1.txt 작성 후, 상태 조회 시 위와 같다.


(5) git add

git init 명령어를 이용하여 관리하고 있는 디렉토리라고 할 지라도, 새롭게 생성된 파일에 대해서는 관리하지 않는다. 파일을 관리하기 위해서는 관리 대상으로 등록해야 한다.

$ git add 'file'

t1.txt가 관리 대상으로 등록된 상태

 


(6) git commit

관리하고 있는 파일(add한 파일)에 한하여 해당 버전에 추가한다.

commit message에는 어떠한 변화가 있는 지 혹은 변화의 이유에 대해 작성한다.

$ git commit

git commit 명령 후, "최초 Version"이라고 commit message를 작성
git commit 명령어, commit message 작성 후 상태

 


(7) git log

각 버전들의 commit message, author, date, commit ID(아주 긴 노란색 문자열) 등의 정보 등을 확인할 수 있다.

$ git log        // 버전 생성이 되었는지 확인 가능
$ git log -p         // 각 commit 사이의 소스상 차이점을 파악할 수 있음
$ git log 'commit Id'     // 해당 commit을 포함하여 이전의 history들만을 출력

t1.txt 수정, add, 2번째 commit 후, git log 명령어를 실행한 결과는 위와 같다.
-p 옵션을 이용하면, commit마다 바뀐 정보를 좀 더 정확히 알 수 있다. 

 


(8) git diff

commit 사이의 차이점에 대해서 알려준다.

$ git diff 'commit ID A'..'commit ID B'    // 두 개의 commit 사이의 차이점 출력
$ gii diff             			   // 마지막 commit으로부터 변경된 점 출력

git diff 'commit ID A'..'commit ID B'
commit 후 변경이 없을 때 git diff / commit 후 파일 변경 후 git diff

 


(9) git reset

 

버전 관리 시스템에서 과거로 돌아가기란 commit을 취소하는 것을 의미한다. Git에서 과거로 돌아가는 방법에는 크게 2가지가 있다.

  • reset

  • revert

과거로 돌아가는 작업은 상당히 위험한 작업이며, 프로젝트 폴더 전체를 copy한 뒤, 위험한 작업을 실시하는 것이 좋다. 그리고, 원격 저장소에서 협업을 할 때, 공유한 이후에는 reset을 하면 안된다. rest은 local 저장소에서만 사용하도록 한다.

 

$ git reset 'Commit ID' --hard		// Commit ID version이 최신이 됨
$ git revert 				// Commit을 취소하면서 새로운 버전을 생성

git rest 전후의 log


Reference