Add version v28 (#564)

<!-- cloudflare-preview --> Preview: https://pr-564.docs-gitea-com.pages.dev

Reviewed-on: https://gitea.com/gitea/docs/pulls/564
Reviewed-by: bircni <[email protected]>
Co-authored-by: Lunny Xiao <[email protected]>
This commit is contained in:
Lunny Xiao authored and bircni committed 2026-09-30 06:40:44 +00:00
1 parent deb2f068d4
commit ba60edbbda
338 files changed
+114457 -47

No files matched your search

@@ -0,0 +1,9 @@
{
"label": "Issues & Pull Requests",
"position": 20,
"link": {
"type": "generated-index",
"slug": "/usage/issues-prs",
"description": "Issues and Pull Requests workflow, templates, and collaboration features"
}
}
@@ -0,0 +1,283 @@
---
date: "2022-09-07T16:00:00+08:00"
slug: "issue-pull-request-templates"
sidebar_position: 15
toc: true
aliases:
- /zh-tw/issue-pull-request-templates
---
# 從模板建立工單與合併請求
開發者可以利用問題模板建立工單與合併請求,其目的在於規範參與者的語言表達。
## 模板介紹
Gitea 支援兩種格式的模板:Markdown 和 YAML。
### Markdown 模板
在 Gitea 中存在兩種用途的 Markdown 模板:
- `ISSUE_TEMPLATE/bug-report.md` 用於規範工單的 Markdown 文本描述
- `PULL_REQUEST_TEMPLATE.md` 用於規範合併請求的 Markdown 文本描述
對於以上 Markdown 模板,我們推薦您將它們放置到專案目錄 `.gitea` 進行收納。
### YAML 模板
用 YAML 語法編寫的模板相比 Markdown 可以實現更豐富的功能,利用表單實現諸如:問卷調查、字符校驗。在 Gitea 中的 YAML 同樣支援兩種用途:
- `ISSUE_TEMPLATE/bug-report.yaml` 用於建立問卷調查形式的工單
- `PULL_REQUEST_TEMPLATE.yaml` 用於建立表單形式的合併請求
對於以上 YAML 模板,我們同樣推薦您將它們放置到專案目錄 `.gitea` 進行收納。
##### 表單支援通過 URL 查詢參數傳值
當新建工單頁面 URL 以 `?title=Issue+Title&body=Issue+Text` 為查詢參數,表單將使用其中的參數(key-value)填充表單內容。
### Gitea 支援的模板文件路徑
工單模板文件名:
- `ISSUE_TEMPLATE.md`
- `ISSUE_TEMPLATE.yaml`
- `ISSUE_TEMPLATE.yml`
- `issue_template.md`
- `issue_template.yaml`
- `issue_template.yml`
- `.gitea/ISSUE_TEMPLATE.md`
- `.gitea/ISSUE_TEMPLATE.yaml`
- `.gitea/ISSUE_TEMPLATE.yml`
- `.gitea/issue_template.md`
- `.gitea/issue_template.yaml`
- `.gitea/issue_template.yml`
- `.github/ISSUE_TEMPLATE.md`
- `.github/ISSUE_TEMPLATE.yaml`
- `.github/ISSUE_TEMPLATE.yml`
- `.github/issue_template.md`
- `.github/issue_template.yaml`
- `.github/issue_template.yml`
合併請求模板:
- `PULL_REQUEST_TEMPLATE.md`
- `PULL_REQUEST_TEMPLATE.yaml`
- `PULL_REQUEST_TEMPLATE.yml`
- `pull_request_template.md`
- `pull_request_template.yaml`
- `pull_request_template.yml`
- `.gitea/PULL_REQUEST_TEMPLATE.md`
- `.gitea/PULL_REQUEST_TEMPLATE.yaml`
- `.gitea/PULL_REQUEST_TEMPLATE.yml`
- `.gitea/pull_request_template.md`
- `.gitea/pull_request_template.yaml`
- `.gitea/pull_request_template.yml`
- `.github/PULL_REQUEST_TEMPLATE.md`
- `.github/PULL_REQUEST_TEMPLATE.yaml`
- `.github/PULL_REQUEST_TEMPLATE.yml`
- `.github/pull_request_template.md`
- `.github/pull_request_template.yaml`
- `.github/pull_request_template.yml`
#### 工單模板目錄
由於工單存在多種類型,Gitea 支援將工單模板統一收納到 `ISSUE_TEMPLATE` 目錄。以下是 Gitea 支援的工單模板目錄:
- `ISSUE_TEMPLATE`
- `issue_template`
- `.gitea/ISSUE_TEMPLATE`
- `.gitea/issue_template`
- `.github/ISSUE_TEMPLATE`
- `.github/issue_template`
- `.gitlab/ISSUE_TEMPLATE`
- `.gitlab/issue_template`
目錄支援混合存放 Markdown (`.md`) 或 YAML (`.yaml`/`.yml`) 格式的工單模板。另外,合併請求模板不支援目錄存放。
## Markdown 模板語法
```md
---
name: "Template Name"
about: "This template is for testing!"
title: "[TEST] "
ref: "main"
labels:
- bug
- "help needed"
---
This is the template!
```
上面的範例表示使用者從列表中選擇一個工單模板時,列表會展示模板名稱 `Template Name` 和模板描述 `This template is for testing!`。 同時,標題會預先填充為 `[TEST]`,而正文將預先填充 `This is the template!`。該 Issue 會被指派給 `user1`。 最後,Issue 還會被分配兩個標籤,`bug` 和 `help needed`,並且將問題指向 `main` 分支。
## YAML 模板語法
YAML 模板格式如下,相比 Markdown 模板提供了更多實用性的功能。
```yaml
name: 表單名稱
about: 表單描述
title: 默認標題
body: 主體內容
type: 定義表單元素類型
id: 定義表單標號
attributes: 擴展的屬性
validations: 內容校驗
```
下例 YAML 設定文件完整定義了一個用於提交 bug 的問卷調查。
```yaml
name: Bug Report
about: File a bug report
title: "[Bug]: "
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: input
id: contact
attributes:
label: Contact Details
description: How can we get in touch with you if we need more info?
placeholder: ex. [email protected]
validations:
required: false
- type: textarea
id: what-happened
attributes:
label: What happened?
description: Also tell us, what did you expect to happen?
placeholder: Tell us what you see!
value: "A bug happened!"
validations:
required: true
- type: dropdown
id: version
attributes:
label: Version
description: What version of our software are you running?
options:
- 1.0.2 (Default)
- 1.0.3 (Edge)
validations:
required: true
- type: dropdown
id: browsers
attributes:
label: What browsers are you seeing the problem on?
multiple: true
options:
- Firefox
- Chrome
- Safari
- Microsoft Edge
- type: textarea
id: logs
attributes:
label: Relevant log output
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
render: shell
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://example.com)
options:
- label: I agree to follow this project's Code of Conduct
required: true
```
### Markdown 段落
您可以在 YAML 模板中使用 `markdown` 元素為開發者提供額外的上下文支撐,這部分內容會作為建立工單的提示但不會作為工單內容提交。
`attributes` 子項提供了以下擴展能力:
| 鍵 | 描述 | 必選 | 類型 | 預設值 | 有效值 |
| ------- | ------------------------------ | ---- | ------ | ------ | ------ |
| `value` | 渲染的文本。支援 Markdown 格式 | 必選 | 字符串 | - | - |
### Textarea 多行文本輸入框
您可以使用 `textarea` 元素在表單中添加多行文本輸入框。 除了輸入文本,開發者還可以在 `textarea` 區域附加文件。
`attributes` 子項提供了以下擴展能力:
| 鍵 | 描述 | 必選 | 類型 | 預設值 | 有效值 |
| ------------- | ----------------------------------------------------------------------------------------------------- | ---- | ------ | -------- | ------------------ |
| `label` | 預期使用者輸入的簡短描述,也以表單形式顯示。 | 必選 | 字符串 | - | - |
| `description` | 提供上下文或指導的文本區域的描述,以表單形式顯示。 | 可選 | 字符串 | 空字符串 | - |
| `placeholder` | 半透明的佔位符,在文本區域空白時呈現 | 可選 | 字符串 | 空字符串 | - |
| `value` | 在文本區域中預填充的文本。 | 可選 | 字符串 | - | - |
| `render` | 如果提供了值,提交的文本將格式化為程式碼塊。 提供此鍵時,文本區域將不會擴展到文件附件或 Markdown 編輯。 | 可選 | 字符串 | - | Gitea 支援的語言。 |
`validations` 子項提供以下文本校驗參數:
| 鍵 | 描述 | 必選 | 類型 | 預設值 | 有效值 |
| ---------- | ---------------------------- | ---- | ------ | ------ | ------ |
| `required` | 防止在元素完成之前提交表單。 | 可選 | 布爾型 | false | - |
### Input 單行輸入框
您可以使用 `input` 元素添加單行文本欄位到表單。
`attributes` 子項提供了以下擴展能力:
| 鍵 | 描述 | 必選 | 類型 | 預設值 | 有效值 |
| ------------- | ---------------------------------------------- | ---- | ------ | -------- | ------ |
| `label` | 預期使用者輸入的簡短描述,也以表單形式顯示。 | 必選 | 字符串 | - | - |
| `description` | 提供上下文或指導的欄位的描述,以表單形式顯示。 | 可選 | 字符串 | 空字符串 | - |
| `placeholder` | 半透明的佔位符,在欄位空白時呈現。 | 可選 | 字符串 | 空字符串 | - |
| `value` | 欄位中預填的文本。 | 可選 | 字符串 | - | - |
`validations` 子項提供以下文本校驗參數:
| 鍵 | 描述 | 必選 | 類型 | 預設值 | 有效值 |
| ----------- | -------------------------------- | ---- | ------ | ------ | -------------------------------------------------------------- |
| `required` | 防止在未填內容時提交表單。 | 可選 | 布爾型 | false | - |
| `is_number` | 防止在未填數字時提交表單。 | 可選 | 布爾型 | false | - |
| `regex` | 直到滿足了與正則表達式匹配的值。 | 可選 | 字符串 | - | [正則表達式](https://en.wikipedia.org/wiki/Regular_expression) |
### Dropdown 下拉菜單
您可以使用 `dropdown` 元素在表單中添加下拉菜單。
`attributes` 子項提供了以下擴展能力:
| 鍵 | 描述 | 必選 | 類型 | 預設值 | 有效值 |
| ------------- | --------------------------------------------------------- | ---- | ---------- | -------- | ------ |
| `label` | 預期使用者輸入的簡短描述,以表單形式顯示。 | 必選 | 字符串 | - | - |
| `description` | 提供上下文或指導的下拉列表的描述,以表單形式顯示。 | 可選 | 字符串 | 空字符串 | - |
| `multiple` | 確定使用者是否可以選擇多個選項。 | 可選 | 布爾型 | false | - |
| `options` | 使用者可以選擇的選項列表。 不能為空,所有選擇必須是不同的。 | 必選 | 字符串數組 | - | - |
`validations` 子項提供以下文本校驗參數:
| 鍵 | 描述 | 必選 | 類型 | 預設值 | 有效值 |
| ---------- | ---------------------------- | ---- | ------ | ------ | ------ |
| `required` | 防止在元素完成之前提交表單。 | 可選 | 布爾型 | false | - |
### Checkboxes 複選框
您可以使用 `checkboxes` 元素添加一組複選框到表單。
`attributes` 子項提供了以下擴展能力:
| 鍵 | 描述 | 必選 | 類型 | 預設值 | 有效值 |
| ------------- | ----------------------------------------------------- | ---- | ------ | -------- | ------ |
| `label` | 預期使用者輸入的簡短描述,以表單形式顯示。 | 必選 | 字符串 | - | - |
| `description` | 複選框集的描述,以表單形式顯示。 支援 Markdown 格式。 | 可選 | 字符串 | 空字符串 | - |
| `options` | 使用者可以選擇的複選框列表。 有關語法,請參閱下文。 | 必選 | 數組 | - | - |
對於 `options`,您可以設定以下參數:
| 鍵 | 描述 | 必選 | 類型 | 預設值 | 有效值 |
| ---------- | --------------------------------------------------------------------------------- | ---- | ------ | ------ | ------ |
| `label` | 選項的標識符,顯示在表單中。 支援 Markdown 用於粗體或斜體文本格式化和超文本鏈接。 | 必選 | 字符串 | - | - |
| `required` | 防止在元素完成之前提交表單。 | 可選 | 布爾型 | false | - |
@@ -0,0 +1,33 @@
---
date: "2023-05-23T09:00:00+08:00"
slug: "labels"
sidebar_position: 13
aliases:
- /zh-tw/labels
---
# 標籤
您可以使用標籤對工單和合併請求進行分類,並提高對它們的概覽。
## 建立標籤
對於儲存庫,可以在 `工單(Issues)` 中點擊 `標籤(Labels)` 來建立標籤。
對於組織,您可以定義組織級別的標籤,這些標籤與所有組織儲存庫共享,包括已存在的儲存庫和新建立的儲存庫。可以在組織的 `設定(Settings)` 中建立組織級別的標籤。
標籤具有必填的名稱和顏色,可選的描述,以及必須是獨佔的或非獨佔的(見下面的“作用域標籤”)。
當您建立一個儲存庫時,可以透過使用 `工單標籤(Issue Labels)` 選項來選擇標籤集。該選項列出了一些在您的實例上 [全域設定的可用標籤集](../../administration/customizing-gitea.md)。在建立儲存庫時,這些標籤也將被建立。
## 作用域標籤
作用域標籤用於確保將至多一個具有相同作用域的標籤分配給工單或合併請求。例如,如果標籤 `kind/bug` 和 `kind/enhancement` 的獨佔選項被設定,那麼工單隻能被分類為 bug 或 enhancement 中的一個。
作用域標籤的名稱必須包含 `/`(不能在名稱的任一端)。標籤的作用域是基於最後一個 `/` 決定的,因此例如標籤 `scope/subscope/item` 的作用域是 `scope/subscope`。
## 按標籤篩選
工單和合併請求列表可以按標籤進行篩選。選擇多個標籤將顯示具有所有選定標籤的工單和合併請求。
按住 alt 鍵並點擊標籤,可以將具有所選標籤的工單和合併請求從列表中排除。
@@ -0,0 +1,143 @@
---
date: "2023-05-23T09:00:00+08:00"
slug: "automatically-linked-references"
sidebar_position: 15
aliases:
- /zh-tw/automatically-linked-references
---
# 自動鏈接引用
當發佈工單、合併請求或評論時,文本描述會被解析以查找引用。這些引用將顯示為工單視圖中的鏈接,並且在某些情況下會觸發特定的“操作”。
類似地,當列出提交消息時,它們也會被解析,並且當它們被推送到主分支時可以觸發“操作”。
為了防止意外建立引用,對於引用的識別有一定的規則。例如,它們不應該包含在程式碼文本內部。它們還應該在周圍的文本中合理清晰(例如,使用空格)。
## 使用者、團隊和組織提及
當找到形式為 `@username` 的文本,並且 `username` 與現有使用者的名稱匹配時,將建立一個“提及”引用。這將通過將文本更改為指向該使用者個人資料的鏈接來顯示,並根據被提及的使用者是否具有訪問內容所需的權限來可能建立通知。
範例:
> [@John](#),你能看一下這個嗎?
對於團隊和組織也是有效的:
> [@Documenters](#),我們需要為此進行規劃。
> [@CoolCompanyInc](#),這個問題關係到我們所有人!
團隊將在適當時收到郵件通知,但整個組織不會收到通知。
提交消息不會產生使用者通知。
## 提交
可以使用提交的 SHA1 哈希或至少七個字符的一部分來引用提交。它們將顯示為指向相應提交的鏈接。
範例:
> 這個錯誤是在 [e59ff077](#) 中引入的
## 工單和合併請求
可以使用簡單的符號 `#1234` 來建立對另一個工單或合併請求的引用,其中 _1234_ 是同一儲存庫中一個工單或合併請求的編號。這些引用將顯示為指向被引用內容的鏈接。
建立此類型引用的效果是,在被引用的文件中建立一個“通知”,前提是引用的建立者對其具有讀取權限。
範例:
> 這似乎與 [#1234](#) 相關
還可以使用形式 `owner/repository#1234` 來引用其他儲存庫中的工單和合併請求:
> 這似乎與 [mike/compiler#1234](#) 相關
或者也可以使用 `!1234` 符號。雖然在 Gitea 中合併請求是工單的一種形式,但 `#1234` 形式總是鏈接到工單;如果鏈接的條目恰好是一個合併請求,Gitea 會適當地進行重定向。而使用 `!1234` 符號,則會建立一個合併請求鏈接,根據需要會被重定向到工單。然而,如果使用外部跟蹤器,這個區別可能很重要,因為工單和合併請求的鏈接是不能互換的。
## 可操作的引用在合併請求和提交消息中
有時,一個提交或合併請求可能會修復或重新出現在某個特定工單中。Gitea 支援在引用之前加上特定的“關鍵字”來關閉和重新打開被引用的工單。常見的關鍵字包括“closes”、“fixes”、“reopens”等。這個列表可以由站點管理員進行 [自訂](../../administration/config-cheat-sheet)。
範例:
> 這個合併請求 _closes_ [#1234](#)
如果可操作的引用被接受,這將在被引用的工單上建立一個通知,宣佈當引用的合併請求被合併時該工單將被關閉。
為了接受可操作的引用,必須滿足以下至少一項條件之一:
- 評論者在建立引用時具有關閉或重新打開工單的權限。
- 引用位於提交消息中。
- 引用作為合併請求描述的一部分發布。
在最後一種情況下,只有當合併合併請求的人具有相應權限時,工單纔會被關閉或重新打開。
此外,只有合併請求和提交消息可以建立一個操作,只有工單可以透過這種方式被關閉或重新打開。
預設的關鍵字如下:
- **關閉工單**: close, closes, closed, fix, fixes, fixed, resolve, resolves, resolved
- **重新打開工單**: reopen, reopens, reopened
## 合併請求和提交消息中的時間跟蹤
當提交或合併合併請求導致自動關閉工單時,還可以透過提交消息添加解決此工單所花費的時間。
要指定解決工單所花費的時間,需要在工單編號後面以 `@<number><time-unit>` 的格式指定時間。在一個提交消息中,可以指定多個已解決的工單,併為每個工單指定花費的時間。
支援的時間單位(`<time-unit>`):
- `m` - 分鐘
- `h` - 小時
- `d` - 天(相當於 8 小時)
- `w` - 周(相當於 5 天)
- `mo` - 月(相當於 4 周)
用於指定時間的數字(`<number>`)也可以是小數,例如 `@1.5h` 表示一小時半。多個時間單位可以結合使用,例如 `@1h10m` 表示 1 小時 10 分鐘。
提交消息範例:
> Fixed #123 spent @1h, refs #102, fixes #124 @1.5h
這將導致工單 #123 增加 1 小時,工單 #124 增加 1 小時半。
## 外部跟蹤器
Gitea 支援使用外部工單跟蹤器,並可以在合併請求中建立對外部託管的工單的引用。但是,如果外部跟蹤器使用數字來標識工單,那麼它們將與 Gitea 中託管的合併請求無法區分。為了解決這個問題,Gitea 允許使用 `!` 標記來標識合併請求。例如:
> 這是工單 [#1234](#),並鏈接到外部跟蹤器。
> 這是合併請求 [!1234](#),並鏈接到 Gitea 中的合併請求。
在工單和合併請求中,`!` 和 `#` 可以互換使用,除非需要進行區分。如果儲存庫使用外部跟蹤器,預設情況下,合併提交消息將使用 `!` 作為引用。
## 工單和合併請求引用摘要
下表說明了工單和合併請求的不同類型的交叉引用。在範例中,`User1/Repo1` 指的是使用引用的儲存庫,而 `UserZ/RepoZ` 表示另一個儲存庫。
| 在 User1/Repo1 中的引用 | Repo1 的工單是外部的 | RepoZ 的工單是外部的 | 渲染效果 |
| ----------------------- | :------------------: | :------------------: | --------------------------------------------- |
| `#1234` | 否 | - | 鏈接到 `User1/Repo1` 中的工單/合併請求 1234 |
| `!1234` | 否 | - | 鏈接到 `User1/Repo1` 中的工單/合併請求 1234 |
| `#1234` | 是 | - | 鏈接到 `User1/Repo1` 的 _外部工單_ 1234 |
| `!1234` | 是 | - | 鏈接到 `User1/Repo1` 的 _PR_ 1234 |
| `User1/Repo1#1234` | 否 | - | 鏈接到 `User1/Repo1` 中的工單/合併請求 1234 |
| `User1/Repo1!1234` | 否 | - | 鏈接到 `User1/Repo1` 中的工單/合併請求 1234 |
| `User1/Repo1#1234` | 是 | - | 鏈接到 `User1/Repo1` 的 _外部工單_ 1234 |
| `User1/Repo1!1234` | 是 | - | 鏈接到 `User1/Repo1` 的 _PR_ 1234 |
| `UserZ/RepoZ#1234` | - | 否 | 鏈接到 `UserZ/RepoZ` 中的工單/合併請求 1234 |
| `UserZ/RepoZ!1234` | - | 否 | 鏈接到 `UserZ/RepoZ` 中的工單/合併請求 1234 |
| `UserZ/RepoZ#1234` | - | 是 | 鏈接到 `UserZ/RepoZ` 的 _外部工單_ 1234 |
| `UserZ/RepoZ!1234` | - | 是 | 鏈接到 `UserZ/RepoZ` 的 _PR_ 1234 |
| **字母數字工單編號:** | - | - | - |
| `AAA-1234` | 是 | - | 鏈接到 `User1/Repo1` 的 _外部工單_ `AAA-1234` |
| `!1234` | 是 | - | 鏈接到 `User1/Repo1` 的 _PR_ 1234 |
| `User1/Repo1!1234` | 是 | - | 鏈接到 `User1/Repo1` 的 _PR_ 1234 |
| _不支援_ | - | 是 | 鏈接到 `UserZ/RepoZ` 的 _外部工單_ `AAA-1234` |
| `UserZ/RepoZ!1234` | - | 是 | 鏈接到 `UserZ/RepoZ` 中的 _PR_ 1234 |
_最後一部分適用於使用字母數字格式的外部工單跟蹤器的儲存庫。_
_**-**: 不適用_
注意:不完全支援具有不同類型工單(外部 vs. 內部)的儲存庫之間的自動引用,可能會導致無效鏈接。
@@ -0,0 +1,47 @@
---
date: "2023-05-23T09:00:00+08:00"
slug: "merge-message-templates"
sidebar_position: 15
aliases:
- /zh-tw/merge-message-templates
---
# 合併消息模板
## 文件名
PR 預設合併消息模板可能的文件名:
- `.gitea/default_merge_message/MERGE_TEMPLATE.md`
- `.gitea/default_merge_message/REBASE_TEMPLATE.md`
- `.gitea/default_merge_message/REBASE-MERGE_TEMPLATE.md`
- `.gitea/default_merge_message/SQUASH_TEMPLATE.md`
- `.gitea/default_merge_message/MANUALLY-MERGED_TEMPLATE.md`
- `.gitea/default_merge_message/REBASE-UPDATE-ONLY_TEMPLATE.md`
## 變量
您可以在這些模板中使用以下以 `${}` 包圍的變量,這些變量遵循 [os.Expand](https://pkg.go.dev/os#Expand) 語法:
- BaseRepoOwnerName:此合併請求的基礎儲存庫所有者名稱
- BaseRepoName:此合併請求的基礎儲存庫名稱
- BaseBranch:此合併請求的基礎儲存庫目標分支名稱
- HeadRepoOwnerName:此合併請求的源儲存庫所有者名稱
- HeadRepoName:此合併請求的源儲存庫名稱
- HeadBranch:此合併請求的源儲存庫分支名稱
- PullRequestTitle:合併請求的標題
- PullRequestDescription:合併請求的描述
- PullRequestPosterName:合併請求的提交者名稱
- PullRequestIndex:合併請求的索引號
- PullRequestReference:合併請求的引用字符與索引號。例如,#1、!2
- ClosingIssues:返回一個包含將由此合併請求關閉的所有工單的字符串。例如 `close #1, close #2`
- ReviewedOn: 該提交所屬的合併請求。例如: `Reviewed-on: https://gitea.com/foo/bar/pulls/1`
- ReviewedBy: 誰同意的此合併請求。例如: `Reviewed-by: Jane Doe <[email protected]>`
## 變基(Rebase)
在沒有合併提交的情況下進行變基時,`REBASE_TEMPLATE.md` 修改最後一次提交的消息。此模板還提供以下附加變量:
- CommitTitle:提交的標題
- CommitBody:提交的正文文本
@@ -0,0 +1,60 @@
---
date: "2018-06-01T19:00:00+02:00"
slug: "pull-request"
sidebar_position: 13
aliases:
- /zh-tw/pull-request
---
# 合併請求
合併請求(PR)是一種提出對儲存庫進行更改的方式。
它是一種將一個分支合併到另一個分支的請求,附帶有對所做更改的描述。
合併請求通常用作貢獻者對儲存庫貢獻程式碼的方式,儲存庫的維護者可以透過對合併請求進行審查來決定是否接受這些更改。
## 建立合併請求
要建立合併請求,您需要遵循以下步驟:
1. **Fork 儲存庫** - 如果您沒有直接對儲存庫進行更改的權限,您需要將儲存庫 fork 到您自己的帳號中。
這將建立一個您可以對其進行更改的儲存庫副本。
2. **建立分支(可選)** - 在 fork 的儲存庫中建立一個新分支,該分支包含您要提出的更改。
給分支取一個描述性的名稱,以指示更改的內容。
3. **進行更改** - 進行您想要的更改,提交併將其推送到 fork 的儲存庫中。
4. **建立合併請求** - 轉到原始儲存庫並轉到“合併請求”選項卡。單擊“新建合併請求”按鈕,並將您的新分支選擇為源分支。
為您的合併請求輸入描述性標題和描述,然後單擊“建立合併請求”。
## 評審合併請求
建立合併請求後,將觸發評審流程。儲存庫的維護者將收到合併請求的通知,並可以審查所做的更改。
他們可以留下評論、請求更改或批准更改。
如果維護者請求更改,您需要在分支中進行這些更改,並將更改推送到 fork 的儲存庫中。
合併請求將自動使用新更改進行更新。
如果維護者批准更改,他們可以將合併請求合併到儲存庫中。
## 關閉合併請求
如果您不接受該合併請求,您可以關閉它。
要關閉合併請求,請轉到打開的合併請求並單擊“關閉合併請求”按鈕。這將關閉合併請求並且不會將其合併。
## 使用“Work In Progress”標記
在合併請求中使用“Work In Progress”標記可以防止合併請求被意外合併。
要將合併請求標記為“Work In Progress”,您必須在其標題中添加前綴`WIP:`或`[WIP]`(不區分大小寫)。
標記前綴可以在您的`app.ini`文件中進行設定:
```
[repository.pull-request]
WORK_IN_PROGRESS_PREFIXES=WIP:,[WIP]
```
列表的第一個值將用於 helpers 程式。
## 合併請求模板
有關合併請求模板的更多資訊請您移步 : [工單與合併請求模板](issue-pull-request-templates)