В этой статье рассказывается о том, с чем вы обязательно столкнётесь при редактировании вики. Описанные ниже шаги не только облегчат вашу жизнь, но и применимы в работе с другими проектами, живущими на GitHub или похожих платформах.
Подробнее о Git и GitHub можно прочитать в документации по GitHub
Git — это система контроля версий, которая помогает отслеживать изменения в файлах. Данные osu! wiki, а также история всех правок хранятся в Git-репозитории. GitHub — это платформа для разработки, в которой есть веб-интерфейс для работы с Git-репозиториями, а также набор инструментов для управления проектами.
Чтобы редактировать файлы в репозитории на Github, его необходимо сначала скопировать, или форкнуть. Копия репозитория, которую вы получаете в своё распоряжение, называется форком. Когда вы делаете форк osu-wiki
, то получаете зафиксированную копию данных на момент сохранения, сама она обновляться не будет. Чтобы быть в курсе чужих изменений, перед редактированием вики всегда нужно синхронизировать форк (это можно сделать через GitHub):
Откройте свой форк osu-wiki
.
Выберите в выпадающем списке ветку master
.
Нажмите на кнопку Fetch upstream
и выберите пункт Fetch and merge
.
Обновление отстающей ветки
Теперь ваша копия вики содержит все последние изменения.
В большинстве случаев этого хватит, но иногда, например, нужно не просто загрузить последние изменения, а ещё и по-быстрому стереть свои собственные.
Если по какой-то причине кнопка на GitHub работает не так, как вы хотите, воспользуйтесь скриптом, написанным редакторами osu! wiki:
Откройте свой форк osu-wiki
и перейдите на вкладку Actions
.
В списке слева под заголовком Workflows
выберите действие Sync from osu! upstream
.
Нажмите на кнопку Run workflow
и заполните поля:
Форма запуска действия на GitHub
master
).true
: стереть все изменения, которые вы внесли в ветку, и потом синхронизировать её с веткой master
из ppy/osu-wiki
.false
(по умолчанию): объединить ваши изменения с новыми правками из ppy/osu-wiki
, ничего не теряя.true
: сделать резервную копию ветки, которая будет сохранена в backup-{name of your branch}
.false
(по умолчанию): не делать резервную копию.Нажмите на зелёную кнопку Run Workflow
и подождите, когда скрипт закончит работать. Если вам интересно, что в этот момент происходит, откройте и поизучайте запущенную задачу Sync from osu! upstream
.
Список проделанных шагов в действии на GitHub
См. также: Forking Workflow | Atlassian Git Tutorial
В рамках своего форка osu! wiki вы можете вносить и сохранять различные изменения. Коммит — это отдельная точка сохранения репозитория. Ветка — это рабочее пространство, содержащее конкретные изменения; переключаясь между ветками, вы переходите между разными версиями репозитория. Чтобы упростить себе жизнь, а также не засорять общую историю правок, следуйте этим рекомендациям:
master
перед началом работы.master
отдельную ветку и делайте все изменения только в ней. Чтобы не запутаться, где вы над чем работаете, давайте веткам осмысленные названия, например, ru-ranking-criteria
.Rewrite the section about jump patterns
лучше отражает содержание, чем стандартное Update en.md
.Через пулл-реквест вы сообщаете другим людям, как ваши правки влияют на содержание статей. Чтобы ваши намерения были лучше понятны остальным, напишите о них:
Title
: суть ваших изменений на английском вместе с именем статьи. Если вы сделали перевод, название нужно начать с кода языка в квадратных скобках. Примеры:
[RU] Add `BBCode`
Update `Beatmapping` and `Beatmap/Difficulty`
Description
: всё, что вы хотите донести до администраторов вики и потенциальных ревьюеров. Примеры:
Allow edits from maintainers
чтобы администраторы вики могли корректировать изменения без вашего участия.Ревью с готовыми предложениями удобнее всего применять через интерфейс GitHub. Чтобы принять несколько предложений сразу, перейдите на вкладку Files changed
, затем прокликайте кнопку Add suggestion to batch
около нужных замечаний и сохраните их одним коммитом.
Предложения можно принимать и по отдельности, нажимая под каждым на кнопку Commit suggestion
, если они достаточно самостоятельны и если вы пишете к каждому коммиту информативное описание.
При принятии готового предложения GitHub автоматически пометит замечание как решённое. Если вы вносите изменения самостоятельно (например, ревьюер объяснил проблему на словах, без готового решения), сначала закоммитьте исправления, а потом вручную решите замечания, чтобы ничего не забыть. По возможности пользуйтесь встроенными инструментами GitHub, поскольку они делают большинство работы за вас и предотвращают ошибки.
Конфликт изменений может произойти в двух случаях:
В зависимости от сложности конфликтов, есть два решения.
Resolve conflicts
, нажмите на неё, чтобы открыть редактор.
<<<<<<<
и =======
, — ваши изменения; всё, что между =======
и >>>>>>> master
, — текущая версия статьи в ppy/master
.<<<<<<<
, =======
и >>>>>>> master
.Mark as resolved
— нажмите на неё.Resolve conflicts
неактивна, вам придётся обновить свою ветку, сбросив все изменения, и внести их заново.