
git fetch와 git pull 모두 원격 저장소에서 로컬 저장소로 변경사항을 가져오는 명령어지만, 다음과 같은 차이점이 있습니다.
git diff 명령어로 변경사항 검토 후, 필요한 경우에 수동으로 병합할 수 있음 git fetch 와 git merge를 결합한 명령어따라서 변경 내용을 먼저 확인한 뒤에 판단하고 싶을 때는 git fetch를,
변경 사항을 빠르게 반영하고 싶을 때는 git pull을 사용하는 것이 적절합니다.
git merge와 git rebase 모두 한 브랜치의 변경사항을 다른 브랜치에 통합하는 명령어지만, 다음과 같은 차이점이 있습니다.
다음과 같은 커밋 이력이 있다고 가정할 때

git merge main을 실행하면 다음과 같이 main 브랜치의 HEAD에 새로운 커밋 이력이 생깁니다.

그에 반해 Feature 브랜치에서 git rebase main을 실행하면 다음과 같이 main 브랜치를 기준으로 커밋 이력이 정렬되고 정렬된 커밋 이력은 새로운 해쉬 ID를 부여 받습니다.

git merge는 각 브랜치의 커밋 히스토리를 유지한 채 병합하여 새로운 커밋을 생성하고 git rebase는 현재 브랜치의 커밋들을 다른 브랜치 위에 다시 쌓는 방식으로 커밋 히스토리를 깔끔하게 정리할 수 있다는 차이점이 있습니다.
git merge는 협업 중인 여러 브랜치의 작업 내역을 명확히 보존하고자 할 때 적절하며, 충돌이 발생한 시점이나 작업 흐름을 추적하기에 유리합니다.
반면 git rebase는 개인 브랜치에서 작업한 내용을 메인 브랜치에 통합하기 전에 커밋 히스토리를 정리하거나, 병합 커밋 없이 일관된 히스토리를 유지하고자 할 때 유용합니다.