> ## Documentation Index
> Fetch the complete documentation index at: https://docs.parallelane.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 푸시 · 풀 · 페치

> 원격 동기화와 ahead/behind 배지

우측 사이드바 최상단 툴바의 아이콘 버튼으로 실행하며, 각 버튼에 지금 보낼·받을 커밋 수가 배지로 표시됩니다.

<Note>
  `origin` 리모트가 없으면 세 버튼이 모두 비활성되고, detached HEAD 상태에서는 푸시·풀만 비활성됩니다.
</Note>

## ahead/behind 카운트 배지

푸시 버튼에는 ahead(보낼 커밋), 풀 버튼에는 behind(받을 커밋) 개수가 붙습니다.

* 카운트가 0이면 배지가 표시되지 않고, 100 이상은 `99+` 로 축약됩니다.
* 비교 기준은 `branch.<브랜치>.remote` 설정(없으면 `origin`)의 원격 브랜치입니다.
* 짝이 되는 원격 브랜치가 없는 새 브랜치라면 받을 커밋은 0, 보낼 커밋은 그 리모트의 어떤 추적 브랜치에도 없는 커밋 수로 셉니다.

좌측 저장소 패널의 브랜치 트리와 워크트리 행에도 같은 값이 `↑N ↓N` 으로 표시됩니다.

<Frame>
  <img src="https://mintcdn.com/railgit/1HhHpeGsA-i8McQ3/images/remote-ahead-behind.png?fit=max&auto=format&n=1HhHpeGsA-i8McQ3&q=85&s=e40768d61221710623a9f684b67ce079" alt="좌측 저장소 패널의 브랜치 트리와 워크트리 행에 보낼·받을 커밋 수가 ↑N ↓N으로 표시된 화면" width="2266" height="1784" data-path="images/remote-ahead-behind.png" />
</Frame>

## 푸시

현재 워크트리의 현재 브랜치를 원격에 올립니다.
툴바의 **푸시** 버튼으로 모달을 엽니다.

* **Push 대상** — `<리모트>/<브랜치> ← <브랜치>` 형태로 대상과 보낼 커밋 수가 표시됩니다.
  업스트림이 없는 브랜치라면 푸시 시 자동으로 등록됩니다.
* **강제 (--force-with-lease)** — rebase·amend 후 다시 올릴 때 사용합니다.
  켜면 경고가 나타나고 실행 버튼이 빨간색으로 바뀝니다.
* **태그 푸시 (--tags)** — 로컬 태그도 함께 올립니다.
  켜면 실제로 푸시될 태그 목록이 표시됩니다.
  기본값은 [설정 → ParalleLane → Git](/ko/settings/preferences)을 따릅니다.
* **Remote** — 리모트가 2개 이상일 때만 나타납니다.
  기본값은 [기본 remote](/ko/remote/remotes)입니다.

<Frame>
  <img src="https://mintcdn.com/railgit/1HhHpeGsA-i8McQ3/images/remote-push-dialog.png?fit=max&auto=format&n=1HhHpeGsA-i8McQ3&q=85&s=049a5e6252a52f27adb62cfc10e1083e" alt="origin/브랜치 대상과 보낼 커밋 수, 강제 푸시·태그 푸시 옵션을 보여주는 푸시 다이얼로그" width="886" height="688" data-path="images/remote-push-dialog.png" />
</Frame>

<Warning>
  **강제 푸시** 는 `--force-with-lease` 를 사용해도 원격 기록이 재작성될 수 있습니다.
  공유 브랜치에서는 팀과 상의하세요.
</Warning>

<Tip>
  원격에 새 커밋이 있어 푸시가 거부되면 먼저 [풀](#풀)로 받아 합친 뒤 다시 푸시하세요.
</Tip>

## 풀

툴바의 **풀** 버튼으로 모달을 열면 받을 커밋 수가 함께 표시됩니다.

* **전략** — **Merge**(기본)는 병합 커밋을 만들고, **Rebase** 는 로컬 커밋을 원격 위로 다시 쌓습니다.
* **Autostash** — 작업 중인 변경을 임시저장하고 풀한 뒤 자동으로 복원합니다.

<Frame>
  <img src="https://mintcdn.com/railgit/1HhHpeGsA-i8McQ3/images/remote-pull-dialog.png?fit=max&auto=format&n=1HhHpeGsA-i8McQ3&q=85&s=7c4f93f99bc313816df64c955a597991" alt="Pull 출처와 Merge·Rebase 전략, Autostash 옵션을 보여주는 풀 다이얼로그" width="886" height="788" data-path="images/remote-pull-dialog.png" />
</Frame>

<Note>
  풀 중 충돌이 나면 워킹 카피 패널에서 해결합니다.
  [병합 충돌 해결](/ko/review/merge-conflicts)을 참고하세요.
</Note>

<Tip>
  좌측 저장소 패널의 **원격 브랜치** 행을 더블클릭하면, 그 브랜치에 체크아웃된 상태일 때 곧바로 fast-forward 풀을 시도합니다.
</Tip>

## 페치

원격의 최신 상태를 가져오되 **작업 트리는 건드리지 않습니다**.
툴바의 **페치** 버튼으로 모달을 엽니다.

* **모든 remote (--all)** — 등록된 모든 리모트에서 가져옵니다.
  켜면 **Remote** 선택이 사라집니다.
* **태그 (--tags)** — 리모트의 태그도 가져옵니다.

기본값은 [설정 → ParalleLane → Git](/ko/settings/preferences)에서 바꿀 수 있고, 모달에서 바꾼 값은 이번 한 번만 적용됩니다.

<Frame>
  <img src="https://mintcdn.com/railgit/1HhHpeGsA-i8McQ3/images/remote-fetch-dialog.png?fit=max&auto=format&n=1HhHpeGsA-i8McQ3&q=85&s=3c0077f5e201e129a2ec71eed08e9fb9" alt="Fetch 출처와 모든 remote·태그 가져오기 옵션을 보여주는 페치 다이얼로그" width="886" height="688" data-path="images/remote-fetch-dialog.png" />
</Frame>

<Note>
  페치는 항상 **prune** 을 함께 수행해, 원격에서 삭제된 브랜치의 낡은 `origin/*` 추적 참조를 정리합니다(로컬 태그는 삭제하지 않습니다).
  특정 리모트만 정리하려면 상단 바의 **원격 트래킹 브랜치 정리(Prune)** 버튼을 사용하세요.
</Note>

## 이벤트 기반 자동 페치

주기적 타이머 대신 다음 순간에 조용히 백그라운드로 페치합니다.

* 앱 창이 다시 포커스를 얻을 때
* 워크트리 또는 저장소를 전환할 때
* 앱을 실행하거나 세션을 복원한 직후

[설정 → ParalleLane → 일반](/ko/settings/preferences)의 **Fetch** 항목에서 모드를 **수동** 에서 **자동** 으로 바꾸면 **자동 fetch 간격** 드롭다운이 나타납니다.
10\~60초 중에서 고르며(기본 30초), 같은 워크트리는 이 간격 안에는 다시 페치하지 않습니다.

<Note>
  자동 페치는 성공·실패 모두 알림이 뜨지 않고, 오프라인이거나 원격이 없으면 건너뜁니다.
  prune과 `--all`/`--tags` 설정은 수동 페치와 동일하게 따릅니다.
</Note>

## 인증

푸시·풀·페치는 시스템 Git 자격증명(HTTPS 토큰, SSH 키, 키체인)을 그대로 사용합니다.
자격증명이 없으면 터미널 프롬프트에서 멈추지 않고 즉시 인증 오류로 실패합니다.

<Note>
  세 작업은 300초 안에 끝나지 않으면 타임아웃으로 중단됩니다.
  진행률을 보고하는 [클론](/ko/remote/clone)에는 더 느슨한 규칙이 적용됩니다.
</Note>

<Warning>
  "인증 실패" 오류가 나오면 계정과 토큰·SSH 키가 등록되어 있는지 [설정 → ParalleLane → 계정](/ko/settings/accounts)에서 확인하세요.
</Warning>
