Files
2025-09-03 21:00:35 +00:00

46 lines
1.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
date: "2023-05-23T09:00:00+08:00"
slug: "agit"
sidebar_position: 12
aliases:
- /zh-tw/agit-setup
---
# AGit
在 Gitea `1.13` 版本中,添加了对 [AGit](https://git-repo.info/zh/2020/03/agit-flow-and-git-repo/) 的支持。AGit 允许使用者在没有存放庫写入权限的情况下直接建立拉取請求,也不需要分叉存放庫。这有助于减少重复存放庫的数量,降低不必要的硬碟使用量。
:::note
服务器端需要 Git 版本 2.29 或更高版本才能正常运行。
:::
## 使用 AGit 建立 PR
AGit 允许在推送代码到远程存放庫时建立 PR合並請求
通過在推送时使用特定的 refspecgit 中已知的位置标识符),可以实現这一功能。
下面的示例说明了这一点:
```shell
git push origin HEAD:refs/for/main
```
該命令的结构如下:
- `HEAD`:目标分支
- `refs/<for|draft|for-review>/<branch>`:目标 PR 類型
- `for`:建立一个以 `<branch>` 為目标分支的普通 PR
- `draft`/`for-review`:目前被静默忽略
- `<branch>/<session>`:要打开 PR 的目标分支
- `-o <topic|title|description>`PR 的選项
- `title`PR 的标题
- `topic`PR 應該打开的分支名稱
- `description`PR 的描述
- `force-push=true`: 是否强制更新目标分支
- 注意: 如果不传值,只用 `-o force-push` 也同样可以正常工作。
下面是另一个高级示例,用于建立一个以 `topic``title``description` 為參數的新 PR目标分支是 `main`
```shell
git push origin HEAD:refs/for/main -o topic="Topic of my PR" -o title="Title of the PR" -o description="# The PR Description\nThis can be **any** markdown content.\n- [x] Ok"
```