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하면 됨
728x90
반응형
'Git' 카테고리의 다른 글
[Git] stash (0) | 2023.12.18 |
---|---|
[Git] case별 git pull (1) | 2023.12.15 |
[Git] 취소 상황 (0) | 2023.12.12 |
[Git] pull과 충돌 (0) | 2023.12.11 |
[Git] 기본 명령어 (0) | 2023.12.11 |