Git 이란, Git 기초 사용법
(1) Git이란
'버전'이란 유의미한 완성된 코드 단위이다. 그리고 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의 저장소로 등록
(4) git status
현재 관리하고 있는 파일과 그렇지 않은 파일을 확인할 수 있다.
$ git status
(5) git add
git init 명령어를 이용하여 관리하고 있는 디렉토리라고 할 지라도, 새롭게 생성된 파일에 대해서는 관리하지 않는다. 파일을 관리하기 위해서는 관리 대상으로 등록해야 한다.
$ git add 'file'
(6) git commit
관리하고 있는 파일(add한 파일)에 한하여 해당 버전에 추가한다.
commit message에는 어떠한 변화가 있는 지 혹은 변화의 이유에 대해 작성한다.
$ git commit
(7) git log
각 버전들의 commit message, author, date, commit ID(아주 긴 노란색 문자열) 등의 정보 등을 확인할 수 있다.
$ git log // 버전 생성이 되었는지 확인 가능
$ git log -p // 각 commit 사이의 소스상 차이점을 파악할 수 있음
$ git log 'commit Id' // 해당 commit을 포함하여 이전의 history들만을 출력
(8) git diff
commit 사이의 차이점에 대해서 알려준다.
$ git diff 'commit ID A'..'commit ID B' // 두 개의 commit 사이의 차이점 출력
$ gii diff // 마지막 commit으로부터 변경된 점 출력
(9) git reset
버전 관리 시스템에서 과거로 돌아가기란 commit을 취소하는 것을 의미한다. Git에서 과거로 돌아가는 방법에는 크게 2가지가 있다.
-
reset
-
revert
과거로 돌아가는 작업은 상당히 위험한 작업이며, 프로젝트 폴더 전체를 copy한 뒤, 위험한 작업을 실시하는 것이 좋다. 그리고, 원격 저장소에서 협업을 할 때, 공유한 이후에는 reset을 하면 안된다. rest은 local 저장소에서만 사용하도록 한다.
$ git reset 'Commit ID' --hard // Commit ID version이 최신이 됨
$ git revert // Commit을 취소하면서 새로운 버전을 생성
Reference
- “지옥에서 온 Git”, 생활코딩, 2019. 1. 19,https://opentutorials.org/course/2708/15202