-
Git - 3. 변경사항 확인과 과거의 버전으로 돌아가기(reset), 매뉴얼 보는 법STUDY/Git & Github 2020. 12. 30. 13:26
#이 글은 "생활코딩" '프로젝트 관리' 강의를 기반으로 정리한 글 입니다.
이번 포스트에서는, 현재의 버전과 이전 버전 간의 차이점, 변경사항을 확인하는 방법과, 과거의 버전으로 돌아가는 방법에 대하여 간략하게 알아보고자 합니다.
#주의할 점은, 강의에서 말하는 것 처럼 과거의 버전으로 돌아가는 git rest 명령어는 위험한 작업이고, 저를 포함한 이 글을 보는 초보자 분들은 조금 더 Git에 대해 깊게 공부한 이후에 다시 한번 공부하시는 것을 추천합니다.
1. 변경사항 확인
1 - 1) git log -p
앞선 포스트에서 file1.txt을 git add와 git commit 명령어를 통해 버전을 생성하고, 이 파일을 수정하여 새로운 버전을 생성하는 연습까지 해보았습니다. 이번에는 이 두개의 버전의 차이점을 보는 방법에 대해 알아보겠습니다. 로그에서 출력되는 버전 간의 차이점을 보고 싶을 때는, git log -p 명령어를 사용합니다. -p 옵션을 사용하면, commit과 commit 사이의 소스 간의 차이점을 보여줍니다.
아래는 git log -p 를 실행한 결과입니다. 하나하나 자세히 어떤 내용인지 살펴보겠습니다.
1) commit 313d8003cb457d0cfeaeb977f1c46e7cadd91c49 (HEAD -> master)
==> 각 commit 마다 가지는 고유의 ID라고 할 수 있습니다.
2) Author: kuku <kuku@email.com>
Date: Wed Dec 30 11:36:56 2020 +0900
==> Commit을 한 사용자의 정보 및 시간에 대한 정보를 보여줍니다.
3) 2
==> Commit 시, 남겼던 commit message입니다.
4)
diff --git a/file1.txt b/file1.txt
index b8cf841..230fc8d 100644
--- a/file1.txt ==> 이전 버전의 파일
+++ b/file1.txt ==> 현재 버전의 파일
@@ -1 +1 @@
-version : 1 ==> 이전 버전의 파일 내용
+version : 2 ==> 현재 버전의 파일 내용
im-yeon-iui-MacBook-Pro:gitBT kim-youn-yi$ git log -p commit 313d8003cb457d0cfeaeb977f1c46e7cadd91c49 (HEAD -> master) Author: kuku <kuku@email.com> Date: Wed Dec 30 11:36:56 2020 +0900 2 diff --git a/file1.txt b/file1.txt index b8cf841..230fc8d 100644 --- a/file1.txt +++ b/file1.txt @@ -1 +1 @@ -version : 1 +version : 2 commit ef65e994d400a6cc72702f1f2fb6631c26874172 Author: kuku <kuku@email.com> Date: Wed Dec 30 11:21:41 2020 +0900 1 diff --git a/file1.txt b/file1.txt new file mode 100644 index 0000000..b8cf841 : new file mode 100644 index 0000000..b8cf841 :
또한 아래와 같이 '--- /dev/null '이 표시되는 경우, 이전 버전에서는 없었던 파일이 새로 생긴 것임을 알수 있습니다.
diff --git a/file2.txt b/file2.txt new file mode 100644 index 0000000..230fc34 --- /dev/null +++ b/file2.txt @@ -0,0 +1,2 @@ +source : 2 +
1 - 2) git diff id1..버전 id2
각각의 commit은 고유의 id를 가지고 있습니다. 이러한 commit id를 이용하여, 버전들간의 차이점을 확인할 수 있습니다. 이 때는 git diff 버전 id1..버전 id2 을 사용합니다.
1 - 3) git diff
git diff는 바로 위의 git diff 버전 id1..버전 id2 과는 조금 차이점이 존재하니 잘 확인해야 합니다. 위의 git diff 버전 id1..버전 id2 는,
commit id를 이용하여, commit 간의 차이를 보여주는 것이라면, git diff 는 git add 명령을 실행하기 이전과 이후의 차이를 보여줍니다. git diff 를 이용하여, stage area에 변경 내용을 올리기 이전에 마지막으로, 변경 사항을 체크해 볼 수 있습니다.
저는 기존의 file1.txt 파일에 "add version" 이라는 메세지를 추가하고, git diff 명령어를 이용하여 변경사항을 확인해보았습니다. 아래 보시는 것과 같이 변경된 사항을 잘 볼 수 있습니다. 이렇게 git add 이전에, git diff 명령어를 이용하여 수정사항을 다시 한번 확인할 수 있는 것이 git diff 명령어의 장점이라고 할 수 있습니다. (수정된 file1.txt 파일을 새로 commit 하려면, 이전과 동일하게 git add file1.txt 명령을 실행한 후, git commit을 해주면 됩니다.)
2. 과거 버전으로 돌아가기 (git reset)
이번에는 commit 하기 이전, 즉 과거 버전으로 돌아가는 방법에 대해 알아보겠습니다. 우선 Reset 과 Revert 두 가지 방법이 존재합니다. 하지만 여기선 Reset에 대해서만 간략하게 알아보도록 하겠습니다.
저는 지금 file1.txt에 대해, 버전 1, 2, 333 세가지를 가지고 있습니다. 여기서 버전 333 (commit ID : edc09....)를 삭제하고, 이전 버전인 2 (commit ID : 313d...)로 돌아가는 방법에 대해 알아보겠습니다. git reset commitId 명령어를 통해 이전 버전으로 돌아갈 수 있는데, 이때 commit ID를 어떤 것을 써야하는 지 헷갈리지 않도록 주의해야합니다. 저의 경우는 , 버전 333을 삭제하고, 버전 2를 최신 버전으로 만드려고 합니다. 즉, 버전 2 이후에 만들어진 버전들을 삭제하려는 것 입니다! 이때는 commit ID에 버전 2의 commit ID를 넣어야합니다. git commit 313d8... 이 명령을 실행하면, 두번째 사진과 같이 버전 333이 삭제되고, 버전 1,2만 남은 것을 확인할 수 있습니다.
3. 매뉴얼 보는 법
git 명령어는 굉장히 다양한 옵션들을 가지고 있습니다. 하지만 저같은 초보자들이 그런 옵션들을 익숙하게 다루기는 쉽지 않습니다. 그래서 저와 같은 초보자들을 위한 매뉴얼이 존재합니다! 이번에는 이러한 git 매뉴얼을 보는 법을 알려드리겠습니다.
git 명령어 뒤에 --help 를 붙이면, 형식과 자세한 사용법이 나옵니다. 아래는 git add --help를 실행한 결과입니다. 영어로 자세하게 태그와 사용법 등에 대해 설명이 나와있지만 처음이라면 이러한 설명만 보고 쉽게 알기 어렵습니다 ㅜ.ㅜ 하지만 우리에겐 구글이 있으니 너무 걱정하지는 맙시다! (설명을 본 후, 다시 터미널 창으로 돌아가려면 q를 입력하면 됩니다.)
추가 . git commit 옵션 사용하기
git commit 명령어에는 -a / -all, -m/ -message 옵션이 있습니다. 우리가 지금까지 commit을 한 과정을 우선 살펴보겠습니다.
1. 수정 -> 2. git add file.txt -> 3. git commit + commit message
이렇게 add와 commit, commit message 작성을 각각 했는데 옵션을 사용하면 더욱 간편하게 commit을 진행할 수 있습니다.
-a / -all : git add file.txt 명령어를 commit 이전에 사용하지 않더라도, git commit -a 를 통해 자동으로 stage area에 파일을 올려줍니다. 주의할 점은 git에 관리 대상으로 지정해주지 않은 새로운 파일에는 -a 옵션이 적용되지 않습니다.
-m <<msg>> / -message <<msg>> : -m 옵션 뒤에 적은 메세지 내용을 자동으로 commit message로 사용합니다.
_____________________________
지금까지 Git 설치, 초기 설정, git add/commit/log/diff 등 Git에 대한 기초적인 내용에 대해 알아보았습니다. 우선 앞의 3개의 포스트에서 설명한 기초적인 내용들을 충분히 숙지한 후, 앞으로의 Git과 관련된 내용을 학습하면 더 좋을 것이라고 생각합니다. 다들 화이팅!
'STUDY > Git & Github' 카테고리의 다른 글
Git - 5. Branch (0) 2021.01.06 Git - 4.2 Git의 원리(commit의 원리, status의 원리) (0) 2021.01.05 Git - 4.1 Git의 원리(add의 원리, object 파일명의 원리) (0) 2021.01.04 Git - 2. Git을 이용한 파일 관리와 버전 만들기 (git add, commit, status) (0) 2020.12.30 Git - 1. Git 설치(Mac)와 저장소 만들기 (0) 2020.12.29