Git & Github 입문 - Git diff

WonJu Lee·2021년 7월 8일
0

Git & Github

목록 보기
4/9

이 포스트는 유튜브 채널 '드림코딩 by 엘리'의 '깃, 깃허브 제대로 배우기 (기본 마스터편, 실무에서 꿀리지 말자)' 를 정리한 글임을 밝힙니다. (https://www.youtube.com/watch?v=Z9dvM7qgN9s&t=30s)

  • git status 명령을 통해 어떤 파일이 수정되었는지, staging area에 위치하는지 파악할 수 있음
  • 그러나 정확히 파일의 어느 부분이 수정되었는지 파악할 수 없음

git diff

  • 파일의 변경 사항을 출력하는 명령어
  • 따로 옵션이 없으면 working directory에 존재하는 file들의 변경 사항만 출력함
git diff
  • 다음과 같은 결과가 출력됨
diff --git a/a.txt b/a.txt 
	# a/a.txt : a.txt의 이전 버전을 의미
	※ 이전 버전 : staging area, git repository에 위치한 file을 의미 
	# b/a.txt : b.txt의 최신버전을 의미
	※ 최신 버전 : working directory에서 마지막으로 다룬 file을 의미
index 0fe633e..e61ef7b 100644 
	# git이 file을 read하는데 사용되는 index
--- a/a.txt
+++ b/a.txt
@@ -1 +1 @@
	# -1 : 이전 버전 file의 첫번 째 줄에서 변경이 일어났음
-ll
	# -ll : 이전 버전 file의 첫번 째 줄의 내용이 삭제됨(-)
+aa
	# +aa : 최신 버전 file의 첫번 째 줄의 내용이 추가됨(+)

git diff --staged

  • staging area에 위치한 file의 변경사항을 확인 하려면 --staged 옵션을 부여함
git diff --staged
  • 다음과 같은 결과가 출력됨
diff --git a/a.txt b/a.txt
new file mode 100644
index 0000000..0fe633e
--- /dev/null
	# 처음으로 staging area에 올라왔으므로, 이전 버전이 존재하지 않음 (null)
+++ b/a.txt
@@ -0,0 +1 @@
+ll
중략
  • working directory에서 발생한 수정이 git add 명령를 통해 staging area로 반영되지 않았음
  • --cached옵션은 --staged 옵션과 같은 기능을 수행함
  • --help 명령을 통해 추가적인 옵션 확인 가능

git diff <commit_id>

  • git diff <commit_id>..[<commit_id>]를 통해, 특정 commit에 포함된 file들의 diff를 확인할 수 있음
  • commit_id들은 '..'을 통해 구분
git diff e424165e426fde40549b2a9317fb8c5064a824f2..c2676fd2f68fc687de194db97215e2e7daeca742

VS code로 확인하기

  1. git config --global -e 명령을 통해 text editor로 .gitconfig 파일 open
    (이전 내용에서 text editor를 vscode로 설정)
  2. 다음과 같은 내용을 추가함
[diff]
	tool = vscode # diff 명령을 수행하는 tool을 'vscode'라는 keyword로 설정 
[difftool "vscode"]
	cmd = code --wait --diff $LOCAL $REMOTE 
    	#'vscode'라는 keyword를 'vscode를 이용해 $local과 $remote를 diff 하라'는 cmd 명령으로 설정  
  1. terminal에서 git diff 대신, git difftool를 입력하면 vscode를 통해 확인 가능함
    (--staged 옵션 사용 가능)
profile
Don't make excuses

0개의 댓글

관련 채용 정보