본문 바로가기

Git+Github

Git 버전별 차이보기, commit log 조작하기(with git bash)

반응형

Git 버전별로 차이 확인하는 방법

지난 포스트에서 git을 이용할 프로젝트 폴더를 만들고 commit을 이용해서 파일이 수정될 때마다 정리를 하는 방법을 익혔다.

이번 포스트에서는 만들어낸 commit으로 만든 버전 별로 차이점을 확인한다.


"git log -p" 기존의 git log 명령에서 -p 옵션을 주면 commit별로 어느부분이 변경되었는지 확인할 수 있다.

commit 4daa2f~~(노란줄) :  commit의 고유 아이디

Author : 작성자의 닉네임과 이메일

Date : commit된 날짜와 시간

commit message : commit할 때 작성한 메시지

(-) : 이전의 소스 코드 / (+) : 변경된 소스 코드

"git diff <버전아이디1>..<버전아이디2>" : 버전아이디1 부터 버전아이디2 까지 log를 보여줌.


"git diff" : add하기 전과 add한 후의 파일 비교

* 작업을 1시간동안 했다고 한다면 1시간전의 코드가 기억이 나지 않을 수 있으므로 이 명령어를 통해 점검해 볼 수 있다.


Git으로 과거 버전으로 돌아가는 방법

commit을 많이 했는데 에러가 많아져서 다시 수정전의 상태로 돌아가고 싶을 때가 있다.

그럴 때 이전 버전으로 돌아가는 방법은 두 가지가 있다.

Reset vs Revert

Reset은 최신의 여러개의 커밋을 지우고 해당 버전으로 돌아가는 방법이고,

Revert는 최신의 여러개의 커밋을 그대로두고 해당 버전으로 돌아가는 커밋을 작성하는 방법이다.

* reset은 최신의 커밋들을 지우고 해당 버전으로 돌아가는 것처럼 보일 뿐 사실, 최신의 커밋들이 지워지는 것이 아니라 다 보관되고 있다.

  따라서 복구할 수 있다.

  하지만 웹 공유 저장소에 push를 통해 올렸다면 reset을 사용할 수 없다.

  이럴 때는 어쩔 수 없이 revert로 돌아가는 방법을 택해야 한다.

git reset --hard <버전id> : 버전id로 돌아간다. (이 후 커밋 다 지움)

git revert <버전id> : 버전id로 돌아간다. (새 커밋 작성)


메뉴얼 확인하는 법

* commit 도움말 확인 : "git commit --help"

"git commit -a" : -a 옵션을 사용할 경우 모든 수정된 부분(파일)을 commit함 = add할 필요가 없음

"git commit -am <message> : -m 옵션을 쓰고 뒤에 message를 쓰면 해당 메세지를 가진 commit을 작성

즉, commit message를 쓰는 에디터를 따로 열지않고 한 문장으로 commit 해결 -a는 기존 옵션기능을 함.


반응형