Utils/Git

Git Diff 활용하기

jinmc 2021. 1. 26. 22:53
반응형

저번 포스팅에서는 해서 branching의 개념을 살펴보았습니다.

이번 포스팅에서는 git diff란 무엇이고, 어떻게 사용하는가에 대한 개념을 알아보도록 하겠습니다.

 

그럼 git diff가 왜 필요할까요?

한 예로, 그 전 포스팅에서 branch를 옮길 때, 

마지막으로 커밋되어있는 파일과 다를 때, 충돌이 난다고 했습니다.

임시조치로 git stash를 배웠지만, 실제로 마지막 commit에서 많이 벗어나 있고,

commit하기에는 적절하지 않을 상황일 때, git diff 를 사용해서 어떤 점이 다른지 볼 수 있습니다.

 

여기서 주의할 점은, 새로운 파일을 만들 경우에는 error가 나지 않는다는 점입니다!

untracked file이 되기 때문이죠

 

git diff를 하면, 마지막 커밋과 어떤 점이 다른지 보여주게 됩니다. (untracked file 빼고)

 

$ git diff # 마지막 commit과 uncommited change의 차이를 보여줌!

또, staging area에 올라가 있는 파일들과 마지막 commit을 비교할 수도 있습니다.

staging area에 올라가 있는 파일들이 없으면 아무것도 나오지 않겠죠!

만일 uncommited files도 보고 싶으면, 다음 커맨드를 사용합니다.

$ git diff HEAD # uncommited change들도 보여줌!

다음 커맨드는 staging area 와 마지막 커밋을 비교합니다.

$ git diff --staged

git diff의 또다른 중요한 내용은, commit들 끼리 비교도 가능하고, 또 다른 branch들 끼리도 비교가 가능하다는 점입니다. 비교하는 방법은, git log로 나온 log id를 가지고 비교가 가능합니다.

 

$ git diff <hash1> <hash2> # 두개의 커밋을 비교!

만약 commitid 를 하나만 주게 된다면, 현재 가지고 있는 코드베이스와 그 commit을 비교합니다.

다음커맨드로 두 개의 branch들도 비교가 가능합니다.

$ git diff branch1..other-feature-branch

commit과 마찬가지로, 한 가지 브랜치만 놓게 되면

현재 있는 브랜치의 코드와 비교하게 됩니다.

 

이렇게 git diff에 대해서 알아보았습니다.

사실 git diff의 내용은 gui같은 visualization tool을 사용하는 게 편할 수도 있지만,

좀 더 구체적이고 정확한 비교를 위해서는 git diff를 알게 되면, 분명 유용하게 쓰일 것입니다.

반응형