git diff

정민교·2023년 6월 2일
0

git

목록 보기
8/22
post-thumbnail

✔️변경사항 비교하기

git diff 를 실행하여 변경 이전과 이후를 비교할 수 있습니다.

📌git diff

git diff 는 working directory와 staging area간의 차이를 보여줍니다.

working directory의 작업 내용을 add 하여 staging area로 올릴 시

git diff 명령을 수행하면 아무것도 확인할 수 없습니다.

📌git diff HEAD

git diff HEAD 는 마지막 커밋 이후 발생한 모든 변경사항을 보여줍니다.

커밋 이후 발생한 모든 변경사항을 보여주기 때문에

git add 를 통해 staging area에 변경사항을 올려두었더라도 변경사항이 무엇인지 확인할 수 있습니다.

📌git diff --staged or --cached

이쯤되면 눈치로 알아보셨을 것 같습니다.

이번에는 마지막 commit과 staged 된 파일들의 변경사항만 확인하는 명령어 입니다.

📌git diff [filename] ...

지금까지의 명령어들을 현재 발생한 모든 변경사항을 확인할 수 있었습니다.

파일 이름을 추가로 명시해 해당 파일의 변경사항만 확인할 수 있습니다.

변경사항을 확인하고 싶은 파일을 추가로 더 넣으셔도 됩니다.

공백을 기준으로 파일들을 구분하기에 하나의 파일 이름을 썼으면 띄어쓰기를 꼭 하시고 다른 파일 이름을 써주셔야 합니다.

✔️브랜치끼리 변경사항 비교하기

브랜치끼리의 변경사항을 비교할 때 브랜치 이름의 순서가 중요합니다.

📌git diff [branch-name]..[branch-name]

공백으로 구분해도 되지만 특정 파일들의 변경사항을 볼 때 띄어쓰기로 파일들을 구분하기 때문에

브랜치끼리의 비교라는 점을 확실히 하기 위해 ..을 쓰는 것을 선호합니다.

✔️커밋끼리 변경사항 비교하기

커밋끼리의 변경사항을 비교할 때 브랜치 이름의 순서가 중요합니다.

📌git diff [commit-hash]..[commit-hash]

✔️예시

두 개의 브랜치가 있습니다.

그리고 두 개의 파일이 있습니다.

fleetwoodmac 밴드와 queen 밴드의 멤버들이 적혀있는 파일입니다.

1970s 브랜치는 1970년대에 밴드 멤버들이고 current 브랜치는 현재 밴드 멤버들이 적혀있다고 생각합시다.

1970s 브랜치와 current 브랜치의 차이를 비교합시다

1970s와 비교해 현재 fleetwoodmac 밴드에 vocal과 guitart 멤버가 바뀌고 keyboard 세션이 추가됐습니다.

queen은 vocal이 Adam Lambert로 Bass 세션은 Neil Fairclough로 바뀌었습니다.

이번에는 두 브랜치의 차이를 비교하는데 대신 queen.txt 파일만 비교해봅시다.

이렇게 queen.txt 에서의 변화만 살펴보았습니다.

이번에는 current 브랜치에서 현재 커밋과 이전 커밋과의 변화를 비교해봅시다.

이런식으로 부모 커밋 참조를 통해서 비교할 수도 있고

이전 커밋 해시인 153b960를 사용하여 비교할 수도 있습니다.

이번에는 queen의 vocal Adam Lambert를 제 이름으로 바꾸고 변경사항을 staging area에 올리겠습니다

이번에는 fleetwoodmac.txt의 vocal Stevie Nicks를 Stevie Chicks로 변경하겠습니다. 하지만 staging area에 올리진 않을 것입니다.

현재 staged 상태가 아닌 변경사항만 비교할 수 있도록 명령어를 실행해 봅시다.(fleetwoodmac.txt만 보여야합니다.)

이번에는 stagged 상태인 변경사항만 비교할 수 있도록 명령어를 실행해 봅시다.(queen.txt만 보여야 합니다.)

이번에는 staging area에 상관없이 현재 커밋과 비교하여 발생한 모든 변경사항을 비교하겠습니다


🙏🙏🙏
git 시리즈에 작성한 포스팅은

https://www.udemy.com/course/best-git-github/
유데미 강좌
https://www.yes24.com/Product/Goods/110795446
모두의 깃 & 깃허브

위 내용을 참고하였으며, 제 실습화면을 캡쳐한 사진 외의

대부분의 사진들은 인터넷 강좌에서 제공하는 자료를 캡쳐하였습니다.

깃 시리즈 포스팅의 내용 및 사진을 절대로 상업적 목적으로 무단 복사하지 말아주세요.

profile
백엔드 개발자

0개의 댓글