> For the complete documentation index, see [llms.txt](https://ayakaleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ayakaleaf-pro.ayaka.space/on-premises/vi/cau-hinh/overleaf-toolkit/git-integration.md).

# Tích hợp Git

Tích hợp Git chỉ khả dụng tại [ayaka-notes/overleaf](https://github.com/ayaka-notes/overleaf) hiện tại.

{% hint style="info" %}
Tính năng này ban đầu được phát triển bởi [ayaka-notes/overleaf-pro](https://github.com/ayaka-notes/overleaf-pro).
{% endhint %}

{% stepper %}
{% step %}

### Bật git-bridge (Chỉ dành cho người dùng Toolkit)

Nếu bạn đang sử dụng Toolkit, hãy bật `git-bridge` bằng cách đặt nội dung sau trong `config/overleaf.rc`:

{% code title="config/overleaf.rc" %}

```
GIT_BRIDGE_ENABLED=true
```

{% endcode %}
{% endstep %}

{% step %}

### Thêm container git-bridge (Chỉ dành cho người dùng Docker Compose)

Đối với người dùng đang chạy một `docker-compose.yml`, hãy thêm cấu hình container sau vào file compose của bạn:

{% code title="docker-compose.yml (dịch vụ git-bridge)" overflow="wrap" %}

```yaml
git-bridge:
    restart: always
    image: quay.io/sharelatex/git-bridge:4.0.0 # thẻ phải khớp với thẻ của container `sharelatex`
    volumes:
        - ~/git_bridge_data:/data/git-bridge
    container_name: git-bridge
    expose:
        - "8000"
    environment:
        GIT_BRIDGE_API_BASE_URL: "http://sharelatex:3000/api/v0/" 
        # "http://sharelatex/api/v0/" cho phiên bản 4.1.6 và cũ hơn
        GIT_BRIDGE_OAUTH2_SERVER: "http://sharelatex"
        GIT_BRIDGE_POSTBACK_BASE_URL: "http://git-bridge:8000"
        GIT_BRIDGE_ROOT_DIR: "/data/git-bridge"
    user: root
    command: ["/server-pro-start.sh"]
```

{% endcode %}
{% endstep %}

{% step %}

### Cập nhật cấu hình container sharelatex

Bạn cũng cần liên kết `git-bridge` container trong `sharelatex` container và định nghĩa các biến môi trường sau, vui lòng chú ý đến `V1_HISTORY_URL`:

<pre class="language-yaml" data-title="docker-compose.yml (dịch vụ sharelatex)"><code class="lang-yaml">sharelatex:
    links:
        - git-bridge
    environment:
         GIT_BRIDGE_ENABLED: true
         GIT_BRIDGE_HOST: "git-bridge"
         GIT_BRIDGE_PORT: "8000"
<strong>         # Hiện chúng tôi dùng v1, nếu trước đây bạn đã đặt V1_HISTORY_URL, vui lòng cập nhật ngay
</strong><strong>         V1_HISTORY_URL: "http://sharelatex:3054"
</strong></code></pre>

{% endstep %}

{% step %}

### Xác thực

Khi xác thực một ứng dụng khách git, người dùng cần một Mã truy cập cá nhân. Người dùng có thể quản lý Mã truy cập cá nhân thông qua giao diện ứng dụng (xem tài liệu):

<figure><img src="/files/078f88429c65f797cd6d9a82cc893b6261207edc" alt=""><figcaption><p>Mã truy cập cá nhân của tích hợp Git</p></figcaption></figure>
{% endstep %}

{% step %}

### Theo dõi và các cân nhắc về tài nguyên

Chúng tôi khuyến nghị bạn theo dõi tài nguyên máy chủ sau khi bật `git-bridge`. Mức tăng tải sẽ phụ thuộc vào:

* số lượng người dùng truy cập tính năng
* các loại dự án được lưu trữ trong instance của bạn (các dự án lớn hơn thường tiêu tốn nhiều tài nguyên hơn)
  {% endstep %}
  {% endstepper %}

### Chuyển dự án sang S3

Tích hợp Git lưu trữ một kho lưu trữ git hoàn chỉnh trên đĩa cho mỗi dự án được người dùng sao chép. Nếu dung lượng đĩa của bạn hạn chế, bạn có thể kích hoạt một tác vụ chuyển đổi sẽ di chuyển các kho lưu trữ ít được dùng hơn sang AWS S3. Nếu một kho lưu trữ đã chuyển ra lại cần dùng, nó sẽ được chuyển trở lại đĩa. Các biến môi trường sau điều khiển tác vụ chuyển đổi:

| Tên                                   | Mô tả                                                                                                                                                               |
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `GIT_BRIDGE_SWAPSTORE_TYPE`           | Đặt giá trị này thành "s3" để kích hoạt tác vụ chuyển đổi.                                                                                                          |
| `GIT_BRIDGE_SWAPSTORE_AWS_ACCESS_KEY` | Khóa truy cập AWS của bạn                                                                                                                                           |
| `GIT_BRIDGE_SWAPSTORE_AWS_SECRET`     | Bí mật AWS của bạn                                                                                                                                                  |
| `GIT_BRIDGE_SWAPSTORE_S3_BUCKET_NAME` | Bucket này sẽ chứa các kho lưu trữ git đã nén zip                                                                                                                   |
| `GIT_BRIDGE_SWAPSTORE_AWS_REGION`     | Khu vực của bucket                                                                                                                                                  |
| `GIT_BRIDGE_SWAPJOB_MIN_PROJECTS`     | <p>Số lượng dự án tối thiểu cần giữ trên đĩa.<br><br><strong>- Mặc định:</strong> 50</p>                                                                            |
| `GIT_BRIDGE_SWAPJOB_LOW_GIB`          | <p>Ngưỡng thấp để chuyển. Tác vụ chuyển đổi sẽ di chuyển các dự án cho đến khi mức sử dụng đĩa thấp hơn giá trị này.<br><br><strong>- Mặc định:</strong> 128 GB</p> |
| `GIT_BRIDGE_SWAPJOB_HIGH_GIB`         | <p>Ngưỡng cao để chuyển. Tác vụ chuyển đổi sẽ bắt đầu chuyển khi mức sử dụng đĩa đạt đến giá trị này.<br><br><strong>- Mặc định:</strong> 256 GB</p>                |
| `GIT_BRIDGE_SWAPJOB_INTERVAL_MILLIS`  | <p>Khoảng thời gian giữa các lần kiểm tra mức sử dụng đĩa và chạy tác vụ chuyển đổi.<br><br><strong>- Mặc định:</strong> 3600000 ms = 1 giờ</p>                     |

### Hỏi & Đáp

<details>

<summary>Nếu tôi chia sẻ dự án của mình với người khác, mô hình quyền của Git Bridge hoạt động như thế nào?</summary>

Người dùng chỉ có quyền đọc chỉ có thể sao chép dự án này; người dùng có quyền đọc-ghi có thể sao chép và đẩy dự án. Lưu ý: Người dùng cần đăng nhập để tham gia dự án này.

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ayakaleaf-pro.ayaka.space/on-premises/vi/cau-hinh/overleaf-toolkit/git-integration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
