이 명령어는 앞에서도 버전들의 정보와 시간 저자의 정보를 알 수 있었다.
이번에는 조금 다르게 사용해볼 것이다.
git log -p //소스 간 차이점 출력
───────────────────────────────────────
commit ea6b406f8016e9d639dcbd72c5268c8c1ed54835
Author: 이름 메일
Date: Wed Mar 22 16:44:41 2023 +0900
f3 내용변경
diff --git a/f3_f2copy,txt b/f3_f2copy,txt
index 9c85570..118814b 100644
--- a/f3_f2copy,txt
+++ b/f3_f2copy,txt
@@ -1 +1,2 @@
-Source : f2-1
+Source : f2-1 copyright
+내용은 의미가 없다.
commit e9fa643bc5a31f315789fa61d3c5e435cec14725
Author: 이름 메일
Date: Wed Mar 22 16:42:25 2023 +0900
f2txt의 복사본 파일 업로드
diff --git a/f3_f2copy,txt b/f3_f2copy,txt
new file mode 100644
index 0000000..9c85570
--- /dev/null
+++ b/f3_f2copy,txt
@@ -0,0 +1 @@
+Source : f2-1
commit 5924d6adb4554dee66e01840664a15ca27e08ec3
Author: 이름 메일
Date: Tue Mar 21 18:28:20 2023 +0900
두 번째 버전 생성 및 f2.txt 생성
diff --git a/f2.txt b/f2.txt
new file mode 100644
index 0000000..9c85570
--- /dev/null
+++ b/f2.txt
@@ -0,0 +1 @@
+Source : f2-1
commit 540fc6247133259b10e466e760cc6c8c40952d63
Author: 이름 메일
Date: Tue Mar 21 18:24:24 2023 +0900
두 번쨰 버전 실행
diff --git a/f1.txt b/f1.txt
index 14cf84e..ad5910c 100644
--- a/f1.txt
+++ b/f1.txt
@@ -1,2 +1,2 @@
-source : 1
+source : 2
위의 git log -p 로 명령어만 쳤을 뿐인데 이것저것 많이 나왔다. 이를 하나씩 알아보자.
commit ea6b406f8016e9d639dcbd72c5268c8c1ed54835
Author: 이름 메일
Date: Wed Mar 22 16:44:41 2023 +0900
f3 내용변경
──────────────────────────────────────
diff --git a/f3_f2copy,txt b/f3_f2copy,txt
index 9c85570..118814b 100644
--- a/f3_f2copy,txt
+++ b/f3_f2copy,txt
@@ -1 +1,2 @@
-Source : f2-1
+Source : f2-1 copyright
+내용은 의미가 없다.
──────────────────────────────────────
commit e9fa643bc5a31f315789fa61d3c5e435cec14725
Author: 이름 메일
Date: Wed Mar 22 16:42:25 2023 +0900
f2txt의 복사본 파일 업로드
위의 코드를 보기 좋게 나눠 놓은 것이다.
이 코드에서 나눠놓은 위 아래 각 버젼이 있고 가운데에 있는것이 이 2가지를 비교한 내용이다.
'+++ b/f3_f2copy.txt' 은 위의 'f3 내용변경' 이라고 적힌 버전을 가리킨다.
'--- a/f3_f2copy.txt' 은 아래의 'f2txt의 복사본 파일 업로드' 이라고 적힌 버전을 가리킨다.
'-Source : f2-1'은 아랫 버전의 내용이다.
'+Source : f2-1 copyright'은 위의 버전에 내용이다.
각 버전 블록 별 commit 뒤에 나오는 값은 각각의 커밋이 저장되어있는 주소를 뜻한다. 만약, git log <commit주소> 를 입력한다면 해당 주소 전까지의 커밋만 보여주게 된다.
commit e9fa643bc5a31f315789fa61d3c5e435cec14725
Author: 이름 메일
Date: Wed Mar 22 16:42:25 2023 +0900
f2txt의 복사본 파일 업로드
diff --git a/f3_f2copy,txt b/f3_f2copy,txt
new file mode 100644
index 0000000..9c85570
--- /dev/null
+++ b/f3_f2copy,txt
@@ -0,0 +1 @@
+Source : f2-1
commit 5924d6adb4554dee66e01840664a15ca27e08ec3
Author: 이름 메일
Date: Tue Mar 21 18:28:20 2023 +0900
두 번째 버전 생성 및 f2.txt 생성
위의 차이점 쪽을 보면 하단의 버전을 가리키는 "---" 부분의 이어지는 것을 보면
" /dev/null " 이라고 적혀있다. 우리는 이를 통해서 전 버전에는 없었던 파일이란 것을 알 수 있다. 그렇다보니 "+"다음 내용이 나오는 부분도 하나밖에 없는 것이다.
위에서 알아본것처럼 각 커밋은 커밋별 주소가 존재한다. 그럼 이 주소끼리 비교가 가능한가? 라고 물으면 가능하다. 하는 방법은 다음과 같다.
$ git diff 700e946b928b587b4202794583cb7dec89eecde2..5924d6adb4554dee66e01840664a15ca27e08ec3
위는 내 각 커밋별 주소로 이둘을 지정하여 둘간의 비교가 가능하다.
vim f1.txt
// source : 2
//
// 위의 값을
// source : 5
// 로 수정하였다.
git diff
diff --git a/f1.txt b/f1.txt
index ad5910c..7686a17 100644
--- a/f1.txt
+++ b/f1.txt
@@ -1,2 +1 @@
- source : 2
-
+source : 5
값을 수정 후 git diff 만 쳤을 때 위와 같은 텍스트들이 보였다.
이 효과는 git add를 한 후에는 보이지 않는다.
현재의 값과 과거의 값을 알려줌으로써 사용자가 한 작업의 확인을 통해서 작업에서의 실수를 방지해준다. 이것이 VCS에 가장 중요한 효과이다.
커밋 별 차이점을 보고 싶다면
지정 한 커밋과 커밋 사이의 모든 차이점들을 보고 싶다면
방금 한 작업의 전 커밋과 비교했을 때 차이점을 보고싶다면
diff 기능은 add후에는 옵션이나 주소없이는 안써지니 주의!