Git
[Git] diff, fetch
qoth_0
2023. 12. 13. 09:07
728x90
반응형
git diff와 fetch
- git diff
- git diff <commit> <commit2>
- 두 커밋간 차이점 비교
- commit1을 기준으로 commit2와의 비교시 차이점 출력
- git diff <commit> <commit2>
- git feth origin main
- origin의 데이터를 로컬로 가져오되 병합은 하지 않는것
→ staging과 working directory의 변경은 없음
- FETCH_HEAD는 git fetch 명령어를 마지막으로 실행했을 때 원격 저장소에서 가져온 브랜치의 최신 커밋을 가리키는 참조
- ex)git fetch origin main
- 현재 checkout 돼 있는 main과 origin main과의 차이가 있을 경우 차이점을 담은 참조 데이터 fetch_head라는 곳에 생성
- git diff origin origin/main으로 차이점을 참고하여 git merge origin main후에 파일수정하고 다시 push
- origin의 데이터를 로컬로 가져오되 병합은 하지 않는것
실습




8a097과 b42985 비교

두 커밋의 차이점을 알려줌

이상태로 새로운 파일(text5)을 origin에서 만들고 git push

pull 하면 로컬에 text5.txt 생성됨

git log를 보면

merge한 commit이 생성됨(88b11)

git push하면 적용 완료
git pull 작업의 단계
- git fetch와 git merge를 동시 실행하는 것과 같음
- 만약 merge가 실패되면 fetch만 완료
- commit한 상황에서 git push origin main을 했는데 충돌 에러가 난다면
방법 1.
git pull → 바로 병합 직전 상황
방법 2.
git fetch origin main으로 fetch_head생성
→ git diff main fetch_head로 main과 fetch_head를 비교
차이 확인 가능 → git merge fetch_head (현재 checkout 되어있는 branch와 병합)
충돌되는 라인 확인 → 충돌 제거 후 add, commit, push하면 됨
충돌제거 add, commit, push 충돌 제거한 상태로 올라감
728x90
반응형