這篇文章覆蓋了一些你在貢獻時可能會遇到的工作。文章提到的方法旨在令貢獻更簡單,也能應用在GitHub甚至其他平臺上的其他專案。
有關Git與GitHub的更多資訊,請見GitHub文檔(簡體中文)。
Git是一個有助管理文件的版本控制系統。osu! wiki的數據與更改記錄都在Git的repository(儲存庫,簡稱repo)中。GitHub是一個開發平臺,為Git repo提供一個網頁界面,並提供一系列管理專案的工具。
如果要修改GitHub上的資料庫,你需要創建一個受自己控制的複本,即分支(fork)。當你創建分支時,你就是複製了此刻資料庫的快照。要作出有意義的貢獻,在作出更改前,你必須先同步分支——這可以直接在GitHub上完成。
找到你osu-wiki
分支(fork)的repo。
在下拉目錄中選擇master
分支。
按Fetch upstream
(獲取上游),然後選擇Fetch and merge
(獲取並合併)。
更新過期的分支
現在你的分支更新到會與最新的repo同步。
這種方法在大多數情況下都能行,但這功能本身都有限制,例如,你不能覆寫分支上任何不想要的更改,因為它只是與上游的master
分支合併。
如果你在使用GitHub工具時遇到任何問題,或者你想覆寫你分支的內容,你可以使用osu! wiki貢獻者編寫的腳本(workflow)。
到你的分支,然後選擇Actions
(行動)分頁。
在左邊側欄上,找Sync with ppy:master
。
按Run workflow
(執行workflow),並填寫一下選項:
GitHub操作workflow目錄
master
。{分支名稱}-backup
的複本。ppy:master
覆寫你分支內的所有內容,忽略所有不同的修改。預設會將ppy:master
合併到已選分支內。按Run workflow
(執行workflow)並等待它運行完畢。如果你好奇它的運作,可以按Sync with ppy:master
workflow 工作。
參見:分支工作流程 | Atlassian Git 教程(英文)
在你的osu! wiki分支裏,你可以任意編輯並保存。Commit(提交)是repo的「存檔點」。Branches(分支)是工作區,讓你在不同版本的repo中切換。為了讓你的工作流程更簡單和保持wiki歷史的整潔,請遵守以下指引:
master
創建分支,並只在該分支內編輯。賦予其一個有意義的名字,例如update-staff-log
。Rewrite the section about jump patterns
(重寫關於jump樣式的部分)比Update en.md
(更新en.md)更能帶出訊息。Pull Request (PR)會展示你的編輯會影響甚麼。在你的PR中附帶一些訊息,以便解釋你的意圖。
Title
: 標題,一個精簡的題目(用英文撰寫),以及PR裏文章的名稱。如果是翻譯文章,還需要在開頭使用半形方括號添加你翻譯語言的代碼。例如:
[ZH-TW] Add `BBCode`
Update `Beatmapping` and `Beatmap/Difficulty`
Description
: 描述,你想向維護者或其他評論者表達的訊息。例如:
Allow edits from maintainers
(允許維護者編輯),在必要時,wiki裏的維護者可以改善你的PR。留言(Reviews)最好直接在GitHub的網頁上應用。在File changed
按Add suggestion to batch
就可以應用多個留言。
你也可以按Commit suggestion
來應用單個修改建議,但前提是你只需要精簡地提供有用的信息。
使用這個系統將會令留言標記為resolved(已解決)。手動應用留言時(譬如評論者沒有直接給出建議時),記得在應用更改後將其標記為resolved,以避免漏掉建議。最好讓GitHub自動應用修改,因為可以防止手動複製的錯誤。
可能導致衝突的兩個原因:
取決於衝突的嚴重程度,你有兩種解決方法:
Resolve conflicts
(解決衝突)按鈕,按下去。這會打開稍微不同的網頁編輯器。
<<<<<<<
和 =======
之間的内容是你作出的修改。所有在 =======
和 >>>>>>> master
之間的内容是 ppy/master
分支上的内容。<<<<<<<
、=======
、>>>>>>> master
標記。Mark as resolved
(標記為已解決)。(這個按鈕只有在解決所有衝突後才可以按。)Resolve conflicts
(解決衝突),很不幸地,你只能更新分支,重新修改。