본문으로 건너뛰기
Git · GitHub 기초집LESSON 08

clone, push, pull, fetch의 차이

난이도입문 → 초급
예상 시간30분
선수지식이전 강의

8강. clone, push, pull, fetch의 차이

1. 이번 강의에서 해결할 문제​

pull과 push를 동기화 버튼처럼 무조건 실행하면 예상치 못한 병합이나 거절을 만납니다. 각 명령이 어느 방향으로 무엇을 바꾸는지 구분합니다.

2. 학습 목표​

3. 핵심 개념​

clone은 저장소와 remote 설정을 새로 만듭니다. fetch는 원격 이력만 받아 origin/main을 갱신하고 작업 파일은 바꾸지 않습니다. pull은 fetch 후 현재 브랜치에 통합합니다. push는 로컬 커밋을 원격에 보냅니다.

명령데이터 방향작업 파일 변경사용 시점
clone원격 → 새 로컬 저장소새 폴더 생성처음 내려받을 때
fetch원격 → 원격 추적 브랜치변경하지 않음먼저 원격 차이를 관찰할 때
pull --ff-only원격 → 현재 브랜치성공하면 변경분기되지 않은 원격 커밋을 반영할 때
push로컬 커밋 → 원격로컬 파일은 그대로검토한 로컬 커밋을 공유할 때

origin/main은 원격 서버를 실시간으로 읽는 이름이 아니라 마지막 fetch에서 확인한 원격 main의 로컬 기록입니다. 따라서 비교 전 fetch가 필요합니다.

4. 단계별 명령어와 예시​

명령 목적: 자신이 접근할 수 있는 학습 저장소를 별도 폴더로 복제하고, 원격 변경을 먼저 관찰한 뒤 fast-forward 방식으로 반영합니다.

실행 전 상태: YOUR-NAME을 실제 GitHub 사용자명으로 바꾸고 저장소 URL이 브라우저에서 존재하는지 확인합니다. C:\dev\git-learning-copy가 이미 존재하면 덮어쓰거나 그 안에 다시 clone하지 않습니다. 원본 저장소 내부가 아닌 C:\dev에서 시작합니다.

복제 경로: C:\dev\git-learning-copy

PowerShell
Set-Location C:\dev
git clone https://github.com/YOUR-NAME/git-learning-site.git git-learning-copy
Set-Location .\git-learning-copy
git remote -v
git status --short
git fetch origin
git log --oneline HEAD..origin/main
git diff HEAD..origin/main
git pull --ff-only
git push

예상 결과: clone 뒤 remote -v에 같은 origin의 fetch·push URL이 표시됩니다. 원격에만 새 커밋이 없다면 HEAD..origin/main 로그와 diff는 비어 있을 수 있습니다. 원격이 앞서 있고 이력이 갈라지지 않았다면 pull --ff-only 후 작업 파일과 HEAD가 원격 커밋으로 이동합니다. push할 로컬 커밋이 없으면 Everything up-to-date가 정상입니다.

5. 명령어가 동작하는 이유​

원격 추적 브랜치는 마지막 fetch 시점의 원격 상태를 로컬에 표현합니다. HEAD..origin/main은 원격에만 있는 커밋을 조회합니다. pull --ff-only는 분기된 이력이 있으면 자동 병합하지 않고 멈추므로 초보자가 상태를 먼저 판단할 수 있습니다.

반대 비교인 origin/main..HEAD는 로컬에만 있어 push 후보가 되는 커밋을 보여 줍니다. push 전에는 git status, 두 방향의 log, staged/unstaged 변경을 확인해야 추적되지 않은 파일이나 커밋하지 않은 작업을 백업했다고 착각하지 않습니다.

6. 자주 하는 실수와 안전한 해결법​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

10. 다음 강의 연결​

원격과 로컬의 차이를 방향별로 읽었습니다. 다음 강의에서는 기능 작업을 별도 브랜치에 격리하고 원격과 안전하게 공유합니다.

MINI QUIZ

clone, push, pull, fetch의 차이 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“clone, push, pull, fetch의 차이”의 두 선택을 비교할 때 기준이 되는 설명은 무엇인가요?
  2. 문제 2‘push가 백업이라고 생각함’ 상태에 관한 “clone, push, pull, fetch의 차이” 본문의 설명으로 가장 알맞은 것은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

8강. clone, push, pull, fetch의 차이 미완료 상태