일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- HTML
- Java
- react
- MVC
- git reset
- content-box
- SQL
- mybatis
- WHEREIN
- git amend
- 부적합한열
- git revase
- ResultType
- CRUD
- 이딴게개발자
- assertequals
- git
- passwordencoder
- JDBC
- springboot
- oracle
- JavaScript
- 배열
- PathVariable
- useContext
- localStorage
- Thymeleaf
- Variabla
- BCryptPasswordEncoder
- Spring
- Today
- Total
개발새발
[Git] 변경 사항 확인 (log & diff) 본문
이전 글에서 git commit을 통해 버전을 생성해보았다.
그리고 버전을 생성하는 데에는
1. 과거 어느 시점의 내용을 확인 가능하다 (시점에 따른 내용의 차이점을 알 수 있음)
2. 과거 시점으로 돌아갈 수 있다
이렇게 크게 두 가지 효용이 존재하는데,
이번에는 이 효용을 위한 명령어를 알아보겠다.
1. git log
지금까지의 버전의 역사를 확인 가능한 명령어
간단하게 디렉토리 내에서 git log를 실행해보자.
이렇듯 git log를 실행하면, 지금까지의 모든 버전에 대한 정보(커밋 메세제, 커밋해시, 커밋 생성 날짜, 작성자...)를 확인이 가능하다. 하지만 보통은 이렇게 처음부터 끝까지의 기록을 확인하기 보다는, 필요에 따라 시점에 맞는 버전을 찾고싶어할 것이다.
그래서 우리의 git은 git log 뒤에 여러 옵션을 줄 수 있게 만들어줬는데...
1) git log -p
각각의 커밋과 커밋 사이에 소스 상의 차이점을 확인 가능한 명령어
git log -p를 사용하면, 커밋 별로 소스의 차이를 확인할 수 있다.
위에서 빨간색으로 표시한 부분을 보면 ver.4라는 메시지로 커밋한 버전과, ver.3 버전과의 차이를 확인할 수 있다.
첫 줄을 통해서 f3.txt 라는 파일에 변경 사항이 있는 것과,
--- /dev/null 을 통해 ver.3에서는 f3.txt 파일이 존재하지 않았던 것,
+++ b/f3.txt 을 통해 ver.4에서 파일이 생성됨과 동시에, 맨 하단 +source : 3을 통해 f3.txt 파일에 source : 3이라는 내용이 추가됐음을 확인 가능하다.
지금에야 굉장히 간단한 정보만 확인을 했지만...
프로젝트라도 진행하고 있는 상황에서 git log -p를 확인하게 된다면 당연하게도 엄청난 분량의 소스가 쏟아져 나올 것이다.
2) git log [commit id]
해당 commit id 이전의 log를 확인 가능
이때 commit id란 git log에서 확인할 수 있는
이렇게 엄청나게 긴 해시(hash)값을 말하는데, 이는 커밋 메시지가 가리키는 버전의 고유한 주소를 나타낸다.
2. git diff
현재 버전에서 변경되고 있는 사항을 확인할 수 있는 명령어
git log는 커밋에 대한 기록을 확인할 수 있었다면, git diff는 이전에 커밋한 버전의 내용과 현재 작업 내용을 비교할 수 있다. 방금 어떤 작업을 진행하고 있었는지 확인 가능하고, 작업 내용을 커밋 하기 전 내가 작업한 내용에 문제가 있는지 여부를 마지막으로 확인이 가능하다는 점에서 유용하다.
f3.txt 파일의 내용을 수정했다는 뜻으로 슬쩍 modified라는 텍스트를 추가하고, git diff를 실행해주면 아래와 같은 결과가 나온다.
커밋된 버전에서 source : 3이라는 내용이었던 것과 달리, 현재 파일에는 modifided라는 내용이 늘어난 것을 확인할 수 있다.
그리고 git diff에는 또 다른 사용 방법이 있는데...
git diff [commitID]..[commitID]
이는 두 커밋 사이의 소스 상의 차이를 보여준다.
아까 수정한 f3.txt의 내용을 커밋한 다음, git diff를 통해서 두 버전 간의 내용을 비교해보자
마찬가지로 modifided 부분에 차이가 있는 점을 확인 할 수 있다
그리고 두 커밋 id의 순서를 반대로하면?
소스 상의 차이점은 동일하나 표기된 방식이 다른 것을 알 수 있다.
그러니까 단순히 내용의 차이점 뿐 아니라, 버전 별로 가지고있는 내용도 다 나타나는데
이게 나타나는 순서는 커밋 순서로부터 영향을 받는다는 점.. (말이 굉장히 횡설수설한데 어떻게 더 잘 표현해야되는거지)
아무튼 이렇게 변경 사항을 확인하고,
git log와 git diff가 가지는 기능에 대해 알아보았다.
그럼 변경사항을 확인했으면 어쩔까?
원하는 버전으로 돌아갈 수도 있지 않을까?
그래서 아마도 다음 Git 공부는 커밋 무효화인 reset이 되지 않을까싶다
(아닐 수도...)
'Git & GitHub' 카테고리의 다른 글
[Git] 최종 commit을 변경하는 git amend (1) | 2024.01.05 |
---|---|
[Git] commit 무효화하기 (git reset) (0) | 2023.12.25 |
[Git] Git의 개념부터 버전 생성까지 (0) | 2023.12.17 |
[GitHub] Octotree (0) | 2023.09.15 |