Skip to content

Работа с Гитом и Гитхабом

Andrey Lemin edited this page Aug 27, 2023 · 2 revisions

Кратко опишу типичный способ организации командной работы в Гитхабе.

Работа с Git'ом

Для того, чтобы начать работу, в любом случае потребуется хотя бы базовые знания о системе контроля версий Git. Вот полезные ссылки:

https://habrahabr.ru/post/104198/ — статья с общей информацией о Гите.

https://git-scm.com/docs — самый полный и подробный справочник

https://git-scm.com/book/ru/v2 — книга на русском.

https://githowto.com/ru — курс обучения на русском.

Форк

В первую очередь следует сделать свой fork этого репозитория. Процесс подробно описан в статьях:

https://help.github.com/articles/fork-a-repo/

https://guides.github.com/activities/forking/

Как добавить изменения в основной репозиторий?

  1. Выберете ишью на Гитхабе и напишите в комментарии к нему, что готовы за него взяться. "Чужие" ишью не берите
  2. Обновите ваш локальный репозиторий. Для этого переключитесь на ветку master и выполните Pull
    git checkout master
    git pull upstream
    В результате этих действий ваш master должен указывать на тот же коммит, что и в оригинальном репозитории.
  3. Находясь в master'е, создайте отдельную локальную ветку для своих изменений. Позаботьтесь о названии: оно должно начинаться с номера issue и быть таким, чтобы отражать то, над чем вы работаете (например, 625-damage-events):
    git branch 625-damage-events
  4. Переключитесь на ветку задачи:
    git checkout 625-damage-events
  5. Определитесь с тем, над чем вы будете работать: какой предполагаемый набор изменений и какова их причина. Сделайте задуманные изменения локально.
  6. После каждой логически завершённой порции изменений делайте коммит:
    git add <путь или шаблон пути к файлу(ам), который(е) нужно добавить в индекс>
    git commit -m "<сообщение коммита>"
    Соглашения о сообщениях к коммиту (важно!):
    • плейнтекст на английском языке
    • длина строк не больше 72 символов. Перенос - дефисом по правилам языка.
    • первая строка, заголовок, - не больше 50 символов
    • заголовок следует начинать со ссылки на задачу по номеру с решёткой
    • заголовок пишется императивом, как будто бы отдаёшь приказания некому исполнителю: "Add weapon name", а не "Adds" или "Added".
    • точку в конце заголовка не ставить.
    Сообщение должно быть кратким. Должно быть понятно, что сделано в данном конкретном коммите. Можно (и нужно) вместо одного большого коммита делать несколько небольших, но логически завязанных, каждый на свою задачу или подзадачу. Примеры хороших сообщений:
    #625 Fix component label
    #625 Add shotgun description
  7. После завершения запланированных работ убедитесь, что у вас нет незакоммиченных изменений, затем залейте свою ветку на ваш форк на GitHub'е:
    git push origin 625-damage-events
  8. На гитхабе основного проекта создайте пулреквест во вкладке "Pull requests". Выберите в качестве основной ветки master, а в качестве сравниваемой - ветку 625-damage-events вашего форка. Жмите на зелёную кнопку. После этого во вкладке "Pull requests" должен быть виден созданный пулреквест.
  9. Ждите, пока народ раскритикует ваши изменения. В это время вы можете работать над другой задачей. Повторите для неё действия, начиная с первого пункта.
  10. Проверяйте замечания других участников в созданном вами пулреквесте. Для их исправления выполняйте пункты 4-7. Создавать новые пулреквесты при этом не надо! Все новые коммиты вашей ветки отобразятся в том же пулреквесте.
  11. Если проблем нет, ответственный человек нажмёт заветную кнопку "Merge pull request", и ваши изменения залиты в рабочую ветку. Ура!
  12. Удалите теперь уже ненужную ветку production-buildings локально и из вашего форка:
    git branch -d 625-damage-events
    git push origin --delete 625-damage-events