-
Notifications
You must be signed in to change notification settings - Fork 19
Робота з Git
Короткий опис того, як варто працювати з Git. Розглядається лише консольний варіант.
Ви можете перекладати гру і без прямого доступу на запис, але тоді вам доведеться працювати з форками (fork). В такому випадку ви можете пропустити цей пункт.
Якщо ви все-таки хочете працювати безпосередньо з цим репзиторієм, то інструкцію того, як отримати доступ на запис, ви можете знайти на форумі у розділі Contributing to existing translations
Якщо розробники надали вам доступ, потрібно клонувати репозиторій собі локально. Для цього:
- Встановіть Git для вашої ОС: [https://git-scm.com/download/mac Mac], [https://git-scm.com/download/win Windows]. Для Linux - скористайтеся менеджером пакетів вашого дистрибутиву.
- Зайдіть на [сторінку проекту на GitHub](https://github.com/Ludeon/RimWorld-Ukrainian).
- Натисніть на зелену кнопку "Clone or Download", що знаходиться приблизно у правій верхній частині сторінки, та скопіюйте рядок: https://github.com/Ludeon/RimWorld-Ukrainian.git
- Запустіть термінал командного рядка або Git Bash в тому каталозі, де ви бажаєте створити локальний репозиторій (тобто, де будуть зберігатися файли перекладу) (ви, звісно ж, можете запустити його з будь-якого іншого місця і перейти до бажаного каталогу за допомогою відповідних команд).
- Клонуйте гілку master (якщо ви працюєте із форком, не забудьте замінити тут адресу на адресу вашого форка):
git clone https://github.com/Ludeon/RimWorld-Ukrainian.git
- Отримайте інформацію про гілки:
git fetch origin
Якщо ви не хочете писати розробникам, то можете просто зробити свій форк цього репозиторію та клонувати його: https://help.github.com/articles/fork-a-repo/ https://guides.github.com/activities/forking/ Або, якщо дуже коротко, натисніть на кнопку fork, що знаходиться майже у правому верхньому куту сторінки, а далі слідуйте підказкам.
Про всяк випадок ще раз: локальний репозиторій - файли на вашому комп'ютері; віддалений репозиторій - https://github.com/Ludeon/RimWorld-Ukrainian, файли, що зберігаються на серверах GitHub'а.
Вам часто (як я сподіваюся на це) доведеться отримувати останні зміни з гітхаба, щоб підтримувати локальні файли в актуальному стані. Для того, щоб оновити основну гілку потрібно виконати наступні команди:
git checkout master git pull
Якщо у віддаленому репозиторії з'явилися нові гілки, а у вас вони відсутні, їх можна отримати наступних шляхом:
git fetch origin git checkout <назва гілки>
- Визначтеся, з чим саме ви будете працювати: який орієнтовний об'єм змін та чому вони були зроблені.
- Перебуваючи в поточній робочій гілці '''локального''' репозиторію, переконайтеся, що у вас остання версія проекту в локальному репозиторії; про всяк випадок виконайте іще раз:
git checkout master git pull
- Створіть окрему локальну гілку для своїх змін. Оберіть таку назву, яка біде показувати, над чи ви працюєте (наприклад, production-buildings):
git checkout -b production-buildings
Також зручно називати гілки відповідно до номеру issue, якому вона "присвячена":git checkout -b 625-DamageEvents
- Зробіть ту роботу, яку ви вважаєте потрібною, локально
- Після кожної логічно завершеної групи змін робіть комміт (commit):
git add <шлях або шаблон шляху до файлів, які необхідно додати до індексу (тобто ті файли, які будуть додані до комміту>
до того ж можна використовувати наступний синтаксис, якщо ви хочете додати абсолютно всі змінені файли:
git add .
Далі, власне кажучи, створюєте комміт:
git commit -m "<повідомлення комміта>"
Угода стосовно повідомлень до комміта '''(це важливо!)''':
- написані англійською мовою;
- довжина рядків не більша за 72 символи; перенесення здійснюється за допомогою дефісу згідно до правил мови;
- перший рядок, заголовок - не більше ніж 50 символів;
- якщо цей комміт вирішує якийсь issue, то на початку заголовка вказується '''посилання''' на номер завдання в issues у вигляді номеру та символу
#
, наприклад:Solve #42
абоFix #234
; - точка в кінці заголовку не потрібна. Повідомлення має бути коротким та описувати зміни в цьому комміті. Варто розбивати великі зміни на декілька невеликих коммітів, які будуть логічно пов'язані між собою. Приклади коректних повідомлень:
Fix #42 component label
Solve #43. Add shotgun description
- Після того, як ви закінчите роботу, "залийте" ваші зміни у відповідну гілку на GitHub (у наступній команді назва гілки приведена лише як приклад):
git push -u origin production-buildings
- На гітхабі створіть пулл-реквест (pull request) на сторінці "Pull requests". Оберіть як основу гілку поточну робочу (наприклад master), а як порівнювану - вашу production-buildings. Якщо ви працюєте із форком, то попередньо вам буде необхідно натиснути на посилання ```compare across forks``` та обрати ваш форк. Натисніть на зелену кнопку. Після цього на сторінці "Pull requests" має бути видно ваш пулл-реквест.
- Чекайте на критику від інших перекладачів та редагуйте ваші зміни згідно до неї. Після кожного виправлення повторюйте пункти 4-6. Створювати при цьому новий пулл-реквест не потрібно! Усі нові комміти з'являться у тому ж пулл-реквесті.
- Якщо проблем не буде, відповідальна людина натисне змержить (merge) ваші зміни до робочої гілки. Вітаю, ви таки зробили це.
- Тепер видаліть непотрібну більш гілку production-buildings локально та із сервера:
git branch -d production-buildings git push origin --delete production-buildings