![](https://velog.velcdn.com/images/taerikang827/post/e900e05c-d0d3-40be-946b-2df31708c844/image.png)
Git Editor를 VSCode로 환경설정하기
- git bash에
git config --global core.editor "code --wait"
입력
- vim이 기본설정
- VSCode로 설정 변경 권장
- --wait 옵션(VSCode창이 닫히기 전에 터미널에서 작업 불가) 추가 권장
- git bash에
git config --global -e
입력
- VSCode 창에 다음 코드를 입력하여 Git Diff 설정 추가
[diff]
tool = vscode
[difftool "vscode"]
cmd = "code --wait --diff $LOCAL $REMOTE"
Git log
![](https://velog.velcdn.com/images/taerikang827/post/faad1a28-c70b-4e3e-8f69-94c287e73dff/image.png)
- branch 별 변경이력을 볼 수 있음
- 가장 최근 변경이력이 가장 위에 표기
- 커밋 / 커밋번호 / 작성자 / 날짜 / 커밋메세지 단위로 표기
Git Diff
![](https://velog.velcdn.com/images/taerikang827/post/363d3546-6411-4631-ba19-ed4c6d856a2f/image.png)
- remote repository에
diff_project
브랜치 생성 후 local에 clone
- diff_project로 이동
![](https://velog.velcdn.com/images/taerikang827/post/08882856-cf42-4e4d-9412-f41dd61e6b71/image.png)
- local에서 'my name is noma'가 담겨있는 파일 test.txt 생성, add, commit
![](https://velog.velcdn.com/images/taerikang827/post/c5af120a-8e8e-4049-88b1-0df2e857e8f0/image.png)
4. remote repository에 push
5. local repository에 test.txt파일 내용을 'my name is zero'로 갱신
- remote의 test.txt 파일 상태: my name is noma
- local의 test.txt 파일 상태
- commit : my name is noma
- 최근 수정본: my name is zero
commit과 최근 수정본을 비교
![](https://velog.velcdn.com/images/taerikang827/post/75b8b5c6-0dbe-4bf0-9b6a-0de5e22a2077/image.png)
git difftool HEAD
입력 후 Y
입력
![](https://velog.velcdn.com/images/taerikang827/post/1b9b371e-c2dc-48f5-85d6-db692ba69f29/image.png)
![](https://velog.velcdn.com/images/taerikang827/post/433c3a05-bae1-4f90-9702-f59ef2df71be/image.png)
7. local repository에 갱신된 test.txt파일을 commit
- remote의 test.txt 파일 상태: my name is noma
- local의 test.txt 파일 상태
- commit : my name is zero
- 최근 수정본: my name is zero
local과 remote 비교
![](https://velog.velcdn.com/images/taerikang827/post/0d66a17f-9e38-42c5-b40a-2a25cb6c8896/image.png)
git difftool main origin/main
입력 후 Y
입력
![](https://velog.velcdn.com/images/taerikang827/post/795265ad-c9d7-43db-8807-b91a7791d39b/image.png)
![](https://velog.velcdn.com/images/taerikang827/post/b0a9359a-340a-4ae3-bfa5-5d2e68c6c459/image.png)
![](https://velog.velcdn.com/images/taerikang827/post/73f9ef32-8746-49b8-84c1-e69f644bcac1/image.png)
- local repository에 dev 브랜치 생성
- dev 브랜치의 test.txt파일 내용을 'my name is base'로 갱신, add, commit
- remote의 test.txt 파일 상태: my name is noma
- local(main) test.txt 파일 상태
- commit : my name is zero
- 최근 수정본: my name is zero
- local(dev) test.txt 파일 상태
- commit: my name is base
- 최근 수정본: my name is base
branch간의 비교
![](https://velog.velcdn.com/images/taerikang827/post/13069b25-a1af-4843-ae3e-0dab8ebfb4a4/image.png)
git difftool main dev
입력 후 Y
입력
![](https://velog.velcdn.com/images/taerikang827/post/c310b4ac-ae53-4364-ae76-3f7f3d76af4e/image.png)
commit간의 비교
![](https://velog.velcdn.com/images/taerikang827/post/7f5d9d30-9f77-49df-be1d-b8ec38bd7bbb/image.png)
git log
입력 후 비교하고 싶은 commit의 hashcode확인
git log ffbbb5b1490664c14c389b83ddcd1a22522cfce3 5bf091238daa022430d406425598b184c7928bf1
입력 후 Y
입력
![](https://velog.velcdn.com/images/taerikang827/post/f2887136-14bb-4be2-8697-f2e7caedf022/image.png)
최근 commit과 이전 commit을 비교