-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Процесс разработки на проекте ShowCode.ru
( Адаптировал отсюда http://habrahabr.ru/post/125999/)
-
Разработчики, кому предоставлен доступ, заходят на страницу https://github.com/lblsa/showcode и нажимают кнопку Fork.
-
после этого у каждого разработчика появляется своя копия репозитория.
-
Свою копию уже можно «стянуть» на свой компьютер:
git clone https://github.com/USERNAME/showcode.git
USERNAME заменяем на свой ник.
- Склонированный репозиторий имеет одну привязку к удалённому репозиторию, названную origin, которая указывает на вашу копию на GitHub, а не на оригинальный репозиторий, чтобы отслеживать изменения и в нём, вам нужно будет добавить другую привязку, названную, например, upstream.
cd showcode
git remote add upstream https://USERNAME@github.com/lblsa/showcode.git
git fetch upstream #Запросит пароль на github.com
- Делаете работу В этой точке вы уже можете править код и делать коммиты. Если вы сделали все предыдущие шаги, чтобы потом вернуть ваши изменения в оригинальный репозиторий, то я настоятельно советую делать всю работу в отдельной тематической ветви разработки. Полезность этого станет ясна на этапе посылки pull request'а. Пускай она будет называться feature.
git checkout -b feature #Создаёт новую ветвь, названную "feature" и делает её активной
Как только вы сделали работу (или её часть), отправьте её в свою копию репозитория на GitHub:
git push origin feature #Загружает изменения в текущей ветви в origin в ветвь feature
- Pull request
Идите на страницу вашей копии репозитория на GitHub, выбирайте ветвь feature и жмите кнопку Pull Request.
http://img.skitch.com/20100831-qfk1c9wyt89pfgfxg61bh1r8rn.png Далее вы попадёте на предпросмотровую страницу, на которой сможете ввести название и описание ваших изменений (название потом попадёт в описание мёрдж-коммита и станет достоянием общественности, учтите это).
http://img.skitch.com/20100831-qit9sjhuqk42t4ww91ifm5tm81.png Изменения сливаете в ветку dev!!!
- Code Review
Следите за вашим пулл-реквестом. Код можно комментировать, принимать и отклонять.
Помните про совет, что следует все изменения, которые пойдут в пулл, держать в отдельной ветке? Так вот,
основное удобство: вы всегда можете добавить коммиты к уже существующему пулл реквесту, просто добавив их к
этой ветке в вашем репозитории (да-да, просто git push origin feature, при условии, что вы указали в пулл реквесте feature как исходную ветвь)
При просмотре пулл реквеста, кроме названия, описания и коммитов, так же отображаются:
Комментарии, оставленные к пулл реквесту;
Дополнительные коммиты, добавленные к ветви пулл реквеста;
Комментарии к изменённым строкам или файлам, оставленные к любому из коммитов, включенных в пулл реквест.
- Когда ваш 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'нули на гитхаб.