git log에 옵션을 붙여넣어 봅시다.
git log -p 라고 입력하게 되면
위 사진의 가장 최신 커밋 정보인 'commit 4'와 그 아래 'commit 3' 사이에 있는 정보가
commit 4와 commit 3의 차이를 알려주는 것입니다.
+++b/f1.txt 가 버전 4(commit 4의 파일)을 가리키고
---a/f1.txt 가 버전 3(commit 3의 파일)을 가리키는 것이라고 생각해봅시다.
그리고 dev/null 이라는 정보가 뜨는 경우가 있는데 예를 들어서 git bash에
위와 같은 정보가 떴다고 가정해봅시다.
이는 commit 2 에 대한 정보가 /dev/null이고
commit 3에 대한 정보가 b/f2.txt 임을 말하는 것인데 이는
commit 2 당시에는 파일이 없었다가 commit 3 했을 때에 f2.txt라는 파일이 생겼음을 의미합니다.
그리고 +source : 2 의 의미는 "source : 2"라는 내용이 f2.txt의 초기 내용임을 알려줍니다.
이 화면을 나가고 싶으면 'q'를 눌러주면 됩니다.
다시 git log 명령어를 입력해봅시다.
그러면 각 commit 에 대한 정보가 나오는데 이 때 빨간색 네모 안의 부분들이 각 commit의 고유 주소값들입니다.
저기 주소 중 commit 2에 대한 주소를 복사해줍시다.(Ctrl+Insert가 복사, Shift+Insert 가 붙여넣기 입니다)
그리고 git log commit2의주소 를 해줍시다
그러면 commit2와 그 이전의 commit에 대한 정보들이 나오게 됩니다.
이번에는 git diff 명령어를 이용해 두 커밋 정보 사이의 차이에 대한 정보를 알아봅시다.
예를들어 commit 4와 commit 2 사이의 차이점을 알아보자고 한다면 이때도 각 커밋의 고유 주소값을 이용해주면 됩니다.
git diff commit4주소..commit2주소 를 입력해봅시다.
git diff 명령어를 입력했을 당시 commit4의 주소를 입력한 후 commit2의 주소를 입력했기 때문에
---는 commit 4(먼저 입력한 것), +++는 commit2(뒤에 입력한 것)에 대한 정보를 나타내게 됩니다.
먼저 붉은색 박스 안의 정보를 살펴봅시다.
f1.txt의 내용이 commit4에서는 f1.txt:2이고 commit 2에서는 source:2였음을 알려줍니다.
다음으로 노란색 박스 안의 정보를 살펴봅시다.
commit4에서는 f2.txt 파일이 존재하고 commit2에서는 /dev/null 즉, f2.txt의 파일이 존재하지 않았음을 알려줍니다.
그리고 commit 4 에서 f2.txt의 내용이 source:2임을 알려줍니다.
git diff의 또다른 용도를 살펴봅시다.
vim f1.txt 명령어를 사용하여 f1.txt 파일의 내용을 바꿔보겠습니다.
f1.txt : 5라고 변경해주었습니다.
그리고 git diff 명령어를 치면
방금 변경한 부분에 대한 내용을 확인할 수 있습니다. (제가 앞서 f2.txt를 git add 처리 해주지 않아서 f2.txt까지 같이 뜨게 되었습니다.)
이는 우리가 파일을 commit 하기 전에 우리가 작업한 내용에 문제가 있는지 없는지 마지막으로 확인할 수 있는 기회를 제공하는 역할을 해줍니다.
그러면 이제 f1.txt와 f2.txt를 git add 해주고 다시 git diff 명령어를 입력해봅시다.
1. git add f1.txt
2. git add f2.txt
3. git diff
그러면 제가 밑에를 잘라서 그런게 아니라 그냥 git diff만 뜨고 넘어가는 것을 알 수 있습니다.
그리고 이제 마무리로 앞서 add 시켜놓은 f1.txt와 f2.txt를 commit 해줍시다.
git commit
그리고 내용을 commit 5로 채우고 git log로 확인해보면
위와 같이 뜨게 됩니다.
'Computer Science > Git' 카테고리의 다른 글
[Git Bash] Git Bash로 commit하고 push하기 (0) | 2020.05.25 |
---|---|
5. Git reset, revert (간단히 알아봅시다) (0) | 2019.12.31 |
3. Git stage area (0) | 2019.12.26 |
2. Git 버전 만들기(commit) (0) | 2019.12.25 |
1. Git init , Git add (0) | 2019.12.23 |