이번 포스팅은 git을 좀 더 편리하게 사용하도록 해주는 명령어의 옵션을 보는 방법과 자주 사용되는 옵션을 살펴보겠습니다.




1. 옵션을 보기위한 방법 : --help

 'git 명령어를 사용하는데 옵션이 뭐가 있는지 모르겠다','옵션을 어떻게 쓰는지 까먹었다' 이런 경우 등 옵션이 궁금한 경우가 생기기 마련입니다.

이런 경우 --help를 사용해서 볼 수 있습니다.

예를들어 

 git commit이 무엇인지, 어떤 옵션이 있는지 궁금하다 ▶ 'git commit --help' 

 git add가 무엇인지, 어떤 옵션이 있는지 궁금하다 ▶ 'git add --help'


'git commit --help'를 보게되면 위와같은 내용이 나오고 아래에 'git commit'에 대한 서술, 옵션이 나오게됩니다.

이것을 읽어보면 사용방법, 옵션들에 대해 알 수 있습니다.



 

 2. git commit의 Option을 살펴보고 사용해보기.

1) git commit -a 

 -a 옵션을 추가하면 Git은 Tracked 상태의 파일을 자동으로 Stage area에 넣는다. 즉, -a옵션을 사용하면 해당 디렉토리의 수정된 파일을 모두 자동으로 add하고 commit하는 것이다.

a옵션을 사용한 예를 보도록 하겠습니다.

 


새로운 파일을 만들어  -a 옵션을 사용해서 commit 하였습니다.

 a옵션을 사용해서 commit후 log(와 status)를 보면 commit이 잘 된 것을 확인 할 수 있습니다.





      -a 옵션을 사용하면 편한 점도 있지만, 선택적으로 add를 해서 commit을 하는 것이 아니므로 주의해서 사용하도록 하는게 좋을 것 같습니다.


2) git commit -m

기본적으로 git commit만 할 경우 vi가 켜지고 커밋메시지를 입력해야한다. 

하지만 vi가 켜져서 입력하고 저장하고 하는게 commit을 많이 하다보면 여간 귀찮은게 아니다. 

따라서 이런 작업 없이 commit message를 commit할때 바로 option으로 입력하는 것이 -m 옵션이다.

사용방법은 git commit -m "Add cal function" 이런식으로 커밋 메시지와 함께 commit을 하면 된다.

예를 보면서 확인해보겠습니다.


 

 mOption이라는 c파일을 생성후 add를 해줍니다.

 그리고 commit할때 -m 옵션을 사용해서 commit message를 입력해주고 log를 보면

다음과 같이 옵션 뒤에 썼던 내용이 log에서 커밋메시지로 보여지는 것을 확인 할 수 있습니다.










코딩을 하다보면 로직이나 구조 등을 변경할 일이 생깁니다. 변경하다가 난관에 부딪혀 이전 버전으로 돌아가고싶다면 어떻게해야할까요? 

 오늘은 위와같은 상황이나 여러가지 상황에서 이전의 버전으로 돌아가는 방법에 대해 공부하겠습니다.



1. git reset 

 git reset은 원하는 version으로 돌아가는 명령입니다.

위는 현재 git log를 보여줍니다.

여기에서 만약 "Version 3까지 완료된 상태로 돌아가고 싶다"="Version 4,5는 날려버리고 싶다"고 한다면

<  git reset --hard 버전id  > 를 입력하면 됩니다. 이를 입력하고 난 후의 모습을 보겠습니다.

버전id는 사진의 commit 우측에 숫자와 영어로된 긴 문자열입니다.

↑ : Version 3으로 돌아가기위해 사용한 명령. (reset 뒤에 hard 옵션이 붙은 것에 대해선 추후에 포스팅 예정입니다.)

git reset을 사용해서 Version 3로 돌아간 후의 git log입니다.

위를 보면 Version 3로 돌아간 것을 알 수 있습니다.

 



2. git revert

 git revert는 버전id의 커밋을 취소한 내용을 새로운 버전으로 만드는 명령입니다.


git reset 후에 남은 version 1,2,3의 상태에서 version 2로 revert 하는 작업 후의 log입니다.

위를 보면 "git revert는 원하는 버전으로 코드 상태는 돌아가지만 기존의 git log 상태에서 새로운 커밋이 생기는 것" 으로 볼 수 있습니다.



정리.

 1. git reset은 원하는 버전으로 돌아감과 동시에 후에 생긴 작업들의 log를 모두 날린다.

 2. git revert는 원하는 버전으로 돌아가고, 그것을 새로운 version으로 추가한다.



이번 시간에는 git log, git diff  명령어를 통해 변경사항을 확인하는 방법을 알아보겠습니다.



먼저 본론으로 들어가기 전에 한가지 알아두고 가도록 하겠습니다.

git log를 보면 위와같이 commit  ~~~~를 볼 수 있습니다.

여기서 commit 우측부분(7f46bddd~)"이 commit에 대한 고유한 주소 (=commit id)" 입니다.


1) git log -p

git log에 -p 옵션을 주게되면 코드의 변경사항을 볼 수 있습니다. (아래Version과 위Version 간의 차이를 볼 수 있음.)

위 그림은 현재 git log -p를 보여주는 것이고, 이제 아래에서부터 하나하나씩 파헤쳐가보도록 하겠습니다.





1-1) 제일 처음에 commit했던 "Version 1"입니다.

여기에서 --- /dev/null  , +++ b/test.c 는  null이었다가 test.c가 됬다는 뜻입니다.

 따라서 test.c가 생성되었다고 볼 수 있습니다.

그리고 아래 초록색 코드는 새로 추가된 코드입니다.

test.c가 생성되어 commit한 것이므로 모두 새로운 코드입니다.





1-2) 두번째로 commit한 내역입니다.

여기에서 commit message는 "Fix test.c" 라는 것을 알 수 있습니다.

아래쪽을 보면 소스코드가 나오고, 초록색 글자로 된 코드가 새로 추가된 코드임을 알 수 있습니다.



(그 다음부터는 똑같은 내용이므로 생략하겠습니다. )




2) git diff : 두 버전의 소스코드 차이를 볼 수 있습니다.

 사용방법 : git diff (commit고유주소1 commit고유주소2)

 만약 위와같이 고유주소를 넣어서 차이점을 보지않고,

git diff를 입력하면 현재 변경된 코드를 볼 수 있습니다. 

따라서 git diff를 통해 commit을 하기전에 변경된 부분을 한번 확인하고 commit할 수 있습니다.





결론.

 1)git log에서 commit 우측에 있는 숫자와 알파벳은 해당 commit에 대한 고유주소이다.

 2)git log에서 -p옵션을 추가하면 버전마다 변경된 부분을 볼 수 있다.

 3)git diff를 통해 버전 간 코드 차이나 현재 변경된 코드 부분을 볼 수 있다.


+ Recent posts