관리 메뉴

멍개의 연구소

diff를 이용하여 변경된 소스 확인하기, reset을 이용하여 head변경 본문

서버/깃 & 깃허브

diff를 이용하여 변경된 소스 확인하기, reset을 이용하여 head변경

멍개. 2017. 5. 8. 15:25

git에서 diff를 이용하여 소스의 변경을 확인할 수 있다.

머 사실 git diff --cached랑 --staged만 쓰는데 둘다 결과가 똑같아서 무슨 차이인가 하고 검색 하다가 다른 옵션이 있길래 정리를 해본다. 결과론 적으로 --cached랑 --staged는 같은 기능임.

$ git diff HEAD # Shows what has changed since the last commit. $ git diff HEAD^ # Shows what has changed since the commit before the latest commit. $ git diff --cached # Show what has been added to the index via git add but not yet committed. $ git diff # Show what has changed but hasn't been added to the index yet via git add.
Working Directory <----+--------+-------+ | | | | | diff HEAD | | V | | | "git add" | | | | | | diff | | | | V | | | Index <----+-----|--------|-------+ | | | | | diff --cached | | V | | | "git commit" | | | | | | | | | | | V | | | HEAD <----+-----+ | | | | diff HEAD^ V | previous "git commit" | | | | | V | HEAD^ <-------------+


필자는 이 그림을 보고 더 혼동스러웠는데 그냥 영어를 이해를 하도록 하자 ㅋㅋㅋ

$ diff head 같은 경우는 커밋로그에서 가장 마지막 커밋로그와 현재의 상태를 비교를 한다.
$ diff head^ 같은 경우에는 커밋로그에서 2번째 로그와 비교를 한다. ^1, ^2와같이 작성을 할 수 있다.

$ git diff는 git add로 추가되지 않은 변경된 소스코드를 보여준다.

$ git diff --staged 또는 git diff --cached는 git add한 것을 커밋 로그 첫번째와 비교를 해준다. 있어보이는 말로 HEAD와 비교를 한다.

$ git reset # add한 것을 취소할 수 있다. $ git reset HEAD^ # 커밋내역을 돌릴 수 있다. 숫자에 따라서 몇번째 전으로 갈지 정할 수 있음


Comments