> ## 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 앱에서 Tools 섹션으로 이동합니다
  2. **+** 기호를 선택하여 새 도구를 추가합니다
  3. 사용 가능한 도구 목록에서 **Git**을 선택합니다
</Accordion>

Git 창은 저장소를 설정하고 연결하는 데 도움을 줍니다:

* **저장소 초기화**: Replit 앱을 위한 새 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 창" width="230" height="314" data-path="images/gh/pane/01-git-pane.png" />
</Frame>

### 변경 사항 관리

<Accordion title="변경 사항 확인 방법">
  1. Replit 앱의 파일을 변경합니다
  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 창" 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 창" 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="병합 충돌 마커를 보여주는 코드 에디터" width="526" height="108" data-path="images/gh/pane/11-merge-conflict.png" />
</Frame>

충돌 파일을 해결한 후, 충돌 기호로 시작하는 줄을 제거하여 충돌 마커를 제거하고 파일을 저장할 수 있습니다.

### Shell에서 Git 명령 사용하기

<Accordion title="Shell 접근 방법">
  1. 왼쪽 도구 독에서 **모든 도구**를 선택합니다
  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 앱에 접근할 수 있는 모든 사람이 Git 자격 증명에 접근할 수 있습니다. 민감한 저장소의 경우 매번 수동으로 자격 증명을 입력하는 것을 고려하세요.
</Note>
