주제 2

Pull과 Push

일상적인 원격 작업 흐름은 작게 유지합니다. 필요하면 먼저 pull하고, 의미 있는 단위로 commit한 뒤, 준비되면 push합니다.

완료할 작업

한 번의 pull과 push 흐름 후 local과 GitHub 이력에 같은 완료 commit이 존재합니다.

시작 전 확인

  • 터미널이 의도한 repository와 branch 안에 있습니다.
  • Push 전에 local 변경을 검토하고 commit했습니다.

검증 상태

상태
재검증 필요
환경
Command-line 동작은 모든 플랫폼에 적용되며 screenshot은 Windows VS Code와 GitHub Desktop 경로도 포함합니다.
검증 대상
Git, VS Code, GitHub Desktop의 pull과 push.
마지막 검증
현재 제품 기준 walkthrough 대기 중.
운영체제 지원
Git 명령은 Windows, macOS, Linux를 지원하며 graphical control은 제품과 플랫폼마다 다릅니다.
Pull과 Push 워크플로우 개요

용어 정리

용어 의미
Stage 변경 사항을 커밋에 포함시키기 전에 준비하는 작업.
Commit 로컬 Git 저장소에 변경 사항을 저장하는 작업.
Push 로컬 Git 저장소에 있는 커밋을 원격 저장소로 전송하는 작업.
Pull 원격 저장소에 있는 커밋을 가져와 로컬 브랜치에 병합하는 작업.

Pull (첫 번째 방법)

GitHub에 업로드 되어 있는 것을 등록된 폴더로 다운로드하는 것을 배워보도록 하겠습니다.

Source Control에서 오른쪽 버튼을 클릭하고 'Pull’을 선택하세요.

VS Code Source Control Pull 메뉴
Pull 메뉴가 강조된 VS Code Source Control 화면

Pull이 성공적으로 완료되면 다음과 같은 화면을 확인할 수 있습니다.

아무도 remote를 바꾸지 않았다면 pull은 아무 일도 하지 않습니다. 그것도 정상입니다.

Pull 완료 후 VS Code Source Control 화면

Pull (두 번째 방법)

Windows에서는 Ctrl + Shift + `, macOS에서는 Cmd + Shift + `로 새 터미널을 엽니다. 그런 다음 다음 명령어를 입력하세요:

git pull

Pull (세 번째 방법)

Command Palette에서도 Pull 명령을 실행할 수 있습니다. Windows에서는 Ctrl + Shift + P, macOS에서는 Cmd + Shift + P를 사용하세요.

VS Code Command Palette Pull 명령

Push (첫 번째 방법)

변경된 사항을 Stage하고 Commit 후에 Push함으로써 GitHub에 업로드할 수 있습니다.

Source Control에서 Changes의 '+'버튼을 클릭하세요.

VS Code Source Control Changes의 plus 버튼

Staged Changes가 생긴 것을 확인할 수 있습니다.

Staged Changes가 생긴 VS Code Source Control 화면

Commit message를 입력하세요.

commit message가 입력된 VS Code Source Control 화면

오른쪽 버튼을 클릭하세요.

VS Code Source Control commit 버튼 메뉴

'Commit & Push’를 선택하세요.

VS Code Source Control Commit & Push 선택지

Push (두 번째 방법)

Windows에서는 Ctrl + Shift + `, macOS에서는 Cmd + Shift + `로 새 터미널을 엽니다. 그런 다음 다음 명령어를 입력하세요:

git add .
git commit -m "Describe your change"
git push

Push (세 번째 방법)

Command Palette에서도 Push 명령을 실행할 수 있습니다. Windows에서는 Ctrl + Shift + P, macOS에서는 Cmd + Shift + P를 사용하세요.

VS Code Command Palette Push 명령

언제 pull하고, 언제 commit하고, 언제 push하는지 즉흥적으로 판단하지 않고 설명할 수 있으면 기본 sync 루프는 자리 잡은 것입니다.

자주 발생하는 문제

  • 겹치는 local 변경을 commit하지 않은 채 pull하면 sync가 중단될 수 있습니다.
  • Push가 거절되면 원격 commit을 먼저 pull하고 검토한 뒤 다시 시도해야 합니다.

완료 확인

git status가 clean working tree와 local branch가 remote branch와 최신 상태임을 표시합니다.