AGit
在 Gitea 1.13
版本中,添加了對 AGit 的支援。AGit 允許用戶在沒有倉庫寫入權限的情況下直接創建拉取請求,也不需要分叉倉庫。這有助於減少重複倉庫的數量,降低不必要的磁盤使用量。
備註
伺服器端需要 Git 版本 2.29 或更高版本才能正常運行。
使用 AGit 創建 PR
AGit 允許在推送代碼到遠程倉庫時創建 PR(合併請求)。 通過在推送時使用特定的 refspec(git 中已知的位置標識符),可以實現這一功能。 下面的示例說明了這一點:
git push origin HEAD:refs/for/main
該命令的結構如下:
HEAD
:目標分支origin
:目標倉庫(不是分叉!)HEAD
:包含您提議更改的本地分支refs/<for|draft|for-review>/<branch>
:目標 PR 類型和配置for
:創建一個以<branch>
為目標分支的普通 PRdraft
/for-review
:目前被靜默忽略<branch>/
:您希望將更改合併到的分支
-o <topic|title|description>
:PR 的選項topic
:此更改的主題。它將成為等待審查的更改分支的名稱。這是觸發拉取請求所必需的。title
:PR 的標題(可選但建議),僅用於尚未關聯 PR 的主題。description
:PR 的描述(可選但建議),僅用於尚未關聯 PR 的主題。force-push=true
: 是否強制更新目標分支。- 注意: 省略值並僅使用
-o force-push
也可以正常工作。
- 注意: 省略值並僅使用
下面是另一個高級示例,用於創建一個以 topic
、title
和 description
為參數的新 PR,目標分支是 main
:
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"