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

# Git 패널 사용하기

> Project Editor에서 버전 관리, 브랜치 관리, 협업을 위한 Git 패널 사용 방법을 알아보세요.

Replit의 Git 패널은 Git 작업을 위한 시각적 인터페이스를 제공하여 명령줄 Git 명령어를 사용할 필요가 없습니다. 이 기능은 초보자도 버전 관리를 쉽게 사용할 수 있게 하면서, 숙련된 개발자에게도 충분히 강력한 도구입니다.

## 기능

Git 패널은 Project Editor에서 직접 종합적인 버전 관리 기능을 제공하며, 복잡한 Git 작업을 단순화하는 사용자 친화적인 인터페이스를 갖추고 있습니다.

* **저장소 관리**: GitHub 통합을 통해 Git 저장소를 초기화, 연결 및 관리
* **커밋 추적**: 모든 파일의 변경 사항을 스테이징, 커밋 및 확인
* **브랜치 작업**: 시각적으로 브랜치 생성, 전환 및 병합
* **충돌 해결**: 시각적 도움을 통해 병합 충돌 식별 및 해결
* **Shell 연동**: Shell에서 실행한 Git 명령어와 Git 패널 간의 동기화

## 사용법

### 저장소 설정

<Accordion title="Git 패널에 접근하는 방법">
  1. Replit App의 Tools 섹션으로 이동합니다
  2. **+** 버튼을 선택하여 새 도구를 추가합니다
  3. 사용 가능한 도구 목록에서 **Git**을 선택합니다
</Accordion>

Git 패널을 사용하면 저장소를 설정하고 연결할 수 있습니다:

* **저장소 초기화**: Replit App에 새 Git 저장소 생성
* **GitHub 연결**: 백업 및 협업을 위해 저장소를 GitHub에 연결
* **원격 저장소 설정**: GitHub 저장소에 대한 연결을 설정하고 관리

<Frame>
  <img src="https://mintcdn.com/replit/rBzGsKp9NcWJ7sib/images/gh/pane/01-git-pane.png?fit=max&auto=format&n=rBzGsKp9NcWJ7sib&q=85&s=8173abb36daae9b8f60646cf259bf0dc" alt="Git pane showing the initialize repository button" width="230" height="314" data-path="images/gh/pane/01-git-pane.png" />
</Frame>

### 변경 사항 관리

<Accordion title="변경 사항을 확인하는 방법">
  1. Replit App의 파일을 수정합니다
  2. Tools 섹션에서 Git 패널을 엽니다
  3. **Review Changes** 섹션에서 변경 사항을 검토합니다
</Accordion>

Git 패널은 코드 변경 사항을 관리하는 도구를 제공합니다:

* **변경 사항 검토**: 추가 및 삭제된 내용이 강조 표시된 수정 파일 확인
* **파일 스테이징**: 다음 커밋에 포함할 특정 파일 선택
* **변경 사항 커밋**: 설명이 포함된 메시지로 변경 사항 저장
* **업데이트 푸시**: 한 번의 클릭으로 GitHub에 커밋 전송

<Frame>
  <img src="https://mintcdn.com/replit/rBzGsKp9NcWJ7sib/images/gh/pane/06-stage-commit-changes.png?fit=max&auto=format&n=rBzGsKp9NcWJ7sib&q=85&s=bf166d48de3a57be08343b79ea5ff900" alt="Git pane showing commit message field and stage options" width="526" height="211" data-path="images/gh/pane/06-stage-commit-changes.png" />
</Frame>

<Note>
  Replit AI를 사용하여 변경 사항을 정확하게 설명하는 커밋 메시지를 생성할 수 있습니다.
</Note>

### 브랜치 관리

<Accordion title="브랜치를 관리하는 방법">
  1. Tools 섹션에서 Git 패널을 엽니다
  2. 브랜치 이름 옆의 브랜치 드롭다운을 선택합니다
  3. 새 브랜치를 생성하거나 기존 브랜치를 선택합니다
</Accordion>

Git 패널을 사용하면 코드의 여러 버전을 쉽게 다룰 수 있습니다:

* **브랜치 생성**: 기능을 별도로 개발하기 위한 새 브랜치 만들기
* **브랜치 전환**: 코드의 다른 버전 간 이동
* **브랜치 게시**: 브랜치를 GitHub에 공유
* **변경 사항 가져오기**: 협업자의 원격 업데이트와 동기화

<Frame>
  <img src="https://mintcdn.com/replit/rBzGsKp9NcWJ7sib/images/gh/pane/08-new-branch.png?fit=max&auto=format&n=rBzGsKp9NcWJ7sib&q=85&s=a9cab3e787687b8fbbf11103b8b86b20" alt="Git pane showing branch creation interface" width="526" height="83" data-path="images/gh/pane/08-new-branch.png" />
</Frame>

### 병합 충돌 해결

<Accordion title="병합 충돌을 해결하는 방법">
  1. 충돌이 있는 상태에서 변경 사항을 가져오려고 시도합니다
  2. Git 패널에서 충돌하는 파일이 강조 표시됩니다
  3. 충돌하는 각 파일을 열어 충돌 내용을 확인하고 해결합니다
  4. 충돌 해결 후 파일을 저장합니다
  5. **Pull**을 선택하여 병합을 완료합니다
</Accordion>

서로 다른 소스의 코드가 충돌할 때 Git 패널은 다음을 지원합니다:

* **충돌 식별**: 충돌이 포함된 파일 정확히 파악
* **차이 시각화**: 충돌하는 코드의 두 버전 모두 검토
* **문제 해결**: 유지할 코드를 선택하거나 충돌을 수동으로 편집
* **병합 완료**: 충돌 해결 후 병합 프로세스 마무리

<Frame>
  <img src="https://mintcdn.com/replit/rBzGsKp9NcWJ7sib/images/gh/pane/11-merge-conflict.png?fit=max&auto=format&n=rBzGsKp9NcWJ7sib&q=85&s=f02773231068c03053c9c80d75ded53f" alt="Code editor showing merge conflict markers" width="526" height="108" data-path="images/gh/pane/11-merge-conflict.png" />
</Frame>

충돌한 파일을 해결한 후, 충돌 기호로 시작하는 줄을 삭제하여 충돌 마커를 제거하고 파일을 저장하세요.

### Shell에서 Git 명령어 사용

<Accordion title="Shell에 접근하는 방법">
  1. 왼쪽 Tool 독에서 **All tools**를 선택합니다
  2. 사용 가능한 도구 중 **Shell**을 선택합니다
</Accordion>

<Tip>
  Git 패널이 사용자 친화적인 인터페이스를 제공하지만, 고급 사용자는 Shell에서 표준 Git 명령어를 사용하여 더 복잡한 작업을 수행할 수 있습니다. 어느 방법을 사용해도 변경 사항은 양쪽 모두에 반영됩니다.
</Tip>

명령줄을 통해 Git을 사용하려는 경우:

* **명령어 동기화**: Shell에서 실행한 Git 명령어는 Git 패널과 자동으로 동기화됩니다
* **전체 Git 기능**: Git 패널에서 사용할 수 없는 고급 Git 기능 접근
* **원활한 전환**: 필요에 따라 Shell 명령어와 Git 패널을 자유롭게 전환

<Info>
  **GitHub 및 GitLab CLI 지원**: 표준 Git 명령어 외에도 Shell에서 [GitHub CLI](https://docs.github.com/en/github-cli) (`gh`)와 [GitLab CLI](https://docs.gitlab.com/ee/editor_extensions/gitlab_cli/) (`glab`)를 사용하여 외부 Git 저장소를 관리하고 연결할 수 있습니다. 이러한 도구는 풀 리퀘스트, 이슈 등 플랫폼별 기능을 포함하여 GitHub 및 GitLab 저장소 작업에 향상된 기능을 제공합니다.
</Info>

#### 저장소 작업

* **저장소 클론**: `git clone <url-to-repository>`
* **저장소 초기화**: `git init`
* **원격 저장소 추가**: `git remote add origin <url-to-repository>`

#### 변경 사항 적용

* **상태 확인**: `git status` (수정, 추가, 삭제된 파일 표시)
* **파일 스테이징**: `git add <filename>` 또는 `git add .` (모든 파일)
* **변경 사항 커밋**: `git commit -m "your commit message"`
* **변경 사항 푸시**: `git push origin <branch-name>`
* **변경 사항 가져오기**: `git pull origin <branch-name>`

#### 인증

비공개 저장소로 작업할 때는 인증이 필요합니다:

* GitHub 저장소의 경우 비밀번호 대신 개인 액세스 토큰을 사용하세요
* 자격 증명을 반복 입력하지 않으려면 Replit Secrets를 사용하여 저장할 수 있습니다:
  1. 키가 `GIT_URL`인 새 시크릿을 생성합니다
  2. 값을 `https://<username>:<token>@github.com/<user-or-org>/<repository>`로 설정합니다
  3. `git push $GIT_URL`을 사용하여 자격 증명 입력 없이 푸시합니다

<Note>
  자격 증명 시크릿을 사용할 때, Replit App에 접근 권한이 있는 사람은 누구나 잠재적으로 Git 자격 증명에 접근할 수 있습니다. 민감한 저장소의 경우 매번 자격 증명을 직접 입력하는 것을 고려하세요.
</Note>
