> For the complete documentation index, see [llms.txt](https://overleaf-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://overleaf-pro.ayaka.space/on-premises/vi/cau-hinh/overleaf-toolkit/git-integration.md).

# tích hợp Git

Tích hợp Git chỉ hiện có 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`tùy chỉnh, hãy thêm cấu hình container sau vào tệp 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 # tag phải khớp với tag 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 sẽ 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>         # Bây giờ 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 git client, người dùng cần một Personal Access Token. Người dùng có thể quản lý Personal Access Token thông qua giao diện ứng dụng (xem tài liệu):

<figure><img src="/files/078f88429c65f797cd6d9a82cc893b6261207edc" alt=""><figcaption><p>Personal Access Token cho tích hợp Git</p></figcaption></figure>
{% endstep %}

{% step %}

### Giám sát và 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 của 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
* loại dự án được lưu trữ trong phiên bản 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 %}

### Hoán đổi 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 clone. Nếu bạn có dung lượng đĩa hạn chế, bạn có thể kích hoạt một tác vụ hoán đổi để chuyển các kho lưu trữ ít được sử dụng hơn sang AWS S3. Nếu một kho lưu trữ đã được hoán đổi cần dùng lại, nó sẽ được chuyển trở lại đĩa. Các biến môi trường sau kiểm soát tác vụ hoá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ụ hoán đổi.                                                                                                            |
| `GIT_BRIDGE_SWAPSTORE_AWS_ACCESS_KEY` | Khóa truy cập AWS của bạn                                                                                                                                           |
| `GIT_BRIDGE_SWAPSTORE_AWS_SECRET`     | Secret AWS của bạn                                                                                                                                                  |
| `GIT_BRIDGE_SWAPSTORE_S3_BUCKET_NAME` | Bucket này sẽ chứa các kho lưu trữ git đã được 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 giữ trên đĩa.<br><br><strong>- Mặc định:</strong> 50</p>                                                                           |
| `GIT_BRIDGE_SWAPJOB_LOW_GIB`          | <p>Ngưỡng thấp để hoán đổi. Tác vụ hoá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 để hoán đổi. Tác vụ hoán đổi sẽ bắt đầu hoán đổi 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ụ hoá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 chỉ đọc chỉ có thể clone dự án này; người dùng có quyền đọc-ghi có thể clone và push 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://overleaf-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.
