git에서 diff를 이용하여 소스의 변경을 확인할 수 있다.
머 사실 git diff --cached랑 --staged만 쓰는데 둘다 결과가 똑같아서 무슨 차이인가 하고 검색 하다가 다른 옵션이 있길래 정리를 해본다. 결과론 적으로 --cached랑 --staged는 같은 기능임.
머 사실 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^ # 커밋내역을 돌릴 수 있다. 숫자에 따라서 몇번째 전으로 갈지 정할 수 있음
댓글
댓글 쓰기