Skip to content
lblsa edited this page Oct 15, 2012 · 14 revisions

ТЗ на ShowCode.ru

Процесс разработки на проекте ShowCode.ru

( Адаптировал отсюда http://habrahabr.ru/post/125999/)

  1. Разработчики, кому предоставлен доступ, заходят на страницу https://github.com/lblsa/showcode и нажимают кнопку Fork.

  2. после этого у каждого разработчика появляется своя копия репозитория.

  3. Свою копию уже можно «стянуть» на свой компьютер:

git clone https://github.com/USERNAME/showcode.git

USERNAME заменяем на свой ник.

  1. Склонированный репозиторий имеет одну привязку к удалённому репозиторию, названную origin, которая указывает на вашу копию на GitHub, а не на оригинальный репозиторий, чтобы отслеживать изменения и в нём, вам нужно будет добавить другую привязку, названную, например, upstream.

cd showcode

git remote add upstream https://USERNAME@github.com/lblsa/showcode.git

git fetch upstream #Запросит пароль на github.com

  1. Делаете работу В этой точке вы уже можете править код и делать коммиты. Если вы сделали все предыдущие шаги, чтобы потом вернуть ваши изменения в оригинальный репозиторий, то я настоятельно советую делать всю работу в отдельной тематической ветви разработки. Полезность этого станет ясна на этапе посылки pull request'а. Пускай она будет называться feature.

git checkout -b feature #Создаёт новую ветвь, названную "feature" и делает её активной

Как только вы сделали работу (или её часть), отправьте её в свою копию репозитория на GitHub:

git push origin feature #Загружает изменения в текущей ветви в origin в ветвь feature

  1. Pull request

Идите на страницу вашей копии репозитория на GitHub, выбирайте ветвь feature и жмите кнопку Pull Request.

http://img.skitch.com/20100831-qfk1c9wyt89pfgfxg61bh1r8rn.png Далее вы попадёте на предпросмотровую страницу, на которой сможете ввести название и описание ваших изменений (название потом попадёт в описание мёрдж-коммита и станет достоянием общественности, учтите это).

http://img.skitch.com/20100831-qit9sjhuqk42t4ww91ifm5tm81.png Изменения сливаете в ветку dev!!!

  1. Code Review

Следите за вашим пулл-реквестом. Код можно комментировать, принимать и отклонять.

Помните про совет, что следует все изменения, которые пойдут в пулл, держать в отдельной ветке? Так вот,

основное удобство: вы всегда можете добавить коммиты к уже существующему пулл реквесту, просто добавив их к

этой ветке в вашем репозитории (да-да, просто git push origin feature, при условии, что вы указали в пулл реквесте feature как исходную ветвь)

При просмотре пулл реквеста, кроме названия, описания и коммитов, так же отображаются:

Комментарии, оставленные к пулл реквесту;

Дополнительные коммиты, добавленные к ветви пулл реквеста;

Комментарии к изменённым строкам или файлам, оставленные к любому из коммитов, включенных в пулл реквест.

  1. Когда ваш pull request примут, не забудьте слить изменения в свой репозиторий (или удалить его, если больше не нужен):

git checkout dev

git pull upstream dev

git push origin dev

Так же можно удалить ветку, в которой велась разработка:

git branch -d feature #В локальном репозитории

git push origin :feature #В удалённом репозитории

Что следует делать, если работа заняла большое время и оригинальный репозиторий успел уйти вперёд? Можно просто влить изменения из оригинального репозитория к себе:

git checkout dev

git pull upstream dev

git checkout feature

git merge dev

Однако хозяину оригинального репозитория или, может быть, даже вам, не понравится наличие мёрж-коммитов и коммитов из dev в списке коммитов на пулл. В таком случае вам стоит воспользоваться git rebase.

git checkout dev

git pull upstream dev

git checkout feature

git rebase dev #Всё отличие только здесь

ВНИМАНИЕ: Пожалуйста, учтите, что git rebase меняет id коммитов! Поэтому, все действия с этой командой стоит выполнять только на локальном репозитории, до того, как эти коммиты станут общедоступны, т.е. до того, как вы их push'нули на гитхаб.

Clone this wiki locally