Jump to content

Pull Request


Recommended Posts

Использование Pull Request позволит помочь прийти к единообразию кода, улучшению читаемости и качества кода, а также улучшению навыков программирования у всех сторон этого общения, так как это инструмент не только контроля, но и анализа кода твоего коллеги.

Цитата

Смотрим за руками.

  1. Крутой программер создал репозиторий.
  2. Вы сделали форк его репозитория (т.е. скопировали к себе)
  3. Вы сделали какие то крутые изменения в своём репозитории.

Теперь если вы хотите, чтобы крутой дядя внёс ваши крутые изменения в свой крутой код. И вы просите, что бы он взял ваши изменения, т.е. сделал git pull; Это и называет pull request

Краткое описание моё:
[03.10.16, 21:39:55] Evgeniy Uspenskiy: в общем смысл в том, что репозиторий закрывается для редактирования
[03.10.16, 21:40:13] Evgeniy Uspenskiy: ты его можешь конечно скомиттить, но запушить в него ничего не сможешь
[03.10.16, 21:40:32] Evgeniy Uspenskiy: по этому ты заходишь на страницу репозитория на битбакете в раздел fork и делаешь себе fork
[03.10.16, 21:40:53] Evgeniy Uspenskiy: там тебе система предложит как то обозвать твой новый реп
[03.10.16, 21:41:18] Evgeniy Uspenskiy: предлагаю обзывать их единообразно: к названию оригинальному приписываешь .fork.toxicaria
[03.10.16, 21:41:34] Evgeniy Uspenskiy: чтобы я видел и понимал что прилетающие потом пулл реквест - это твои форки
[03.10.16, 21:41:59] Evgeniy Uspenskiy: пока мы вдвоем - это не сильно важно, но задел на расширение ...
[03.10.16, 21:42:07] Evgeniy Uspenskiy: итак: ты сделал себе форк
[03.10.16, 21:42:23] Evgeniy Uspenskiy: теперь у тебя свой личный реп - клон с моего
[03.10.16, 21:42:31] Evgeniy Uspenskiy: его ты и клонируешь к себе
[03.10.16, 21:42:47] Evgeniy Uspenskiy: и делаешь все, что там тебе угодно
[03.10.16, 21:43:03] Evgeniy Uspenskiy: на счет pull request:
[03.10.16, 21:43:10] Evgeniy Uspenskiy: тут вроде все просто:
[03.10.16, 21:43:22] Evgeniy Uspenskiy: ты допустим береш какую то задачу в работу
[03.10.16, 21:43:27] Evgeniy Uspenskiy: у себя создаешь ветку
[03.10.16, 21:43:32] Evgeniy Uspenskiy: под эту задачу
[03.10.16, 21:43:42] Evgeniy Uspenskiy: да, надо себя заставить теперь работать через ветки
[03.10.16, 21:43:59] Evgeniy Uspenskiy: сам не сильно их испльзовал, но вообще это по феншую
[03.10.16, 21:44:04] Evgeniy Uspenskiy: итак, создаешь ветку
[03.10.16, 21:44:10] Evgeniy Uspenskiy: локально
[03.10.16, 21:44:19] Evgeniy Uspenskiy: в этой ветке все там делаешь по задаче
[03.10.16, 21:44:25] Evgeniy Uspenskiy: все закоммичишаешь
[03.10.16, 21:44:37] Evgeniy Uspenskiy: и пушиш ветку к себе в репозиторий
[03.10.16, 21:44:40] Evgeniy Uspenskiy: именно пушиш ветку
[03.10.16, 21:44:46] Evgeniy Uspenskiy: не сливая ее с мастером
[03.10.16, 21:45:05] Evgeniy Uspenskiy: у тебя в твоем репозитории появится эта ветка с твоими изменениями
[03.10.16, 21:46:34] Evgeniy Uspenskiy: а потом ты в своей менюхе заходишь в раздел PULL REQUEST
[03.10.16, 21:46:39] Evgeniy Uspenskiy: и создаешь его
[03.10.16, 21:46:48] Evgeniy Uspenskiy: указываешь какую ветку у себя ты хочешь мне отправить
[03.10.16, 21:47:14] Evgeniy Uspenskiy: и куда она ко мне должна упасть: в master (это по умолчанию) или создастся новая ветка у меня
[03.10.16, 21:47:36] Evgeniy Uspenskiy: давай попробуем в master пока кидать, а там разберемся по ходу жизни как луче
[03.10.16, 21:47:42] Evgeniy Uspenskiy: в общем ты создаешь запрос
[03.10.16, 21:47:47] Evgeniy Uspenskiy: мне прилетает отбойка
[03.10.16, 21:47:50] Evgeniy Uspenskiy: я вижу этот запрос
[03.10.16, 21:47:55] Evgeniy Uspenskiy: вижу что ты добавил в коде
[03.10.16, 21:48:02] Evgeniy Uspenskiy: и мы можем общаться по этому запросу
[03.10.16, 21:48:07] Evgeniy Uspenskiy: я там могу какие то комменты писать
[03.10.16, 21:48:09] Evgeniy Uspenskiy: ты тоже
[03.10.16, 21:48:44] Evgeniy Uspenskiy: не уверен что будем именно там писать, хотя почему бы и нет... в общем где общаться - в трелло или в битбакете - надо будет попробовать что удобнее
[03.10.16, 21:49:25] Evgeniy Uspenskiy: если я прошу что то доделать - то соответственно доделываешь, коммишь у себя, пушишь обычным образом опять в ветку. я это автоматом сразу вижу
[03.10.16, 21:49:54] Evgeniy Uspenskiy: как только все норм - я сливаю твой pull request со своим репозиторием
[03.10.16, 21:49:59] Evgeniy Uspenskiy: и он закрывается
[03.10.16, 21:50:26] Evgeniy Uspenskiy: к обсуждению - как в эту схему встроить тестирование

На счёт тестирования на стороне клиента:

Общий смысл проблемы в том, что у клиента в итоге должна быть версия основного репозитория. Вы же в основной репозиторий код можете внести только через Pull Request, что долго и муторно. На этапе тестирования и отладки может потребоваться сделать несколько коммитов, и все их "прогонять" через Pull Request - не оперативно. Плюс я бы хотел видеть Pull Request по финальной корректной рабочей версии кода, не тратя наше общее время на согласование каких-то промежуточных не протестированных стадий. 

Суть предлагаемого решения:

вы на сервере клиента подключаете свой fork-репозиторий в качестве второго репозитория:

$ git remote add dev [email protected]:crmhosting/u247.git

после этого вы все свои изменения внутри своего форка выгружаете на сервер клиента командой:

$ git pull dev <название вашей ветки в вашем форке>

таким образом вы можете без Pull Request все отладить на стороне клиента. И когда отладка на сервере клиента закончена, уже тогда делать Pull Request.

После того, как работа по клиенту полностью закончена, не забудьте удалить у клиента ссылку на свой форк:

$ git remote rm dev

 

Почитать:

Требования, предъявляемые к коду, приходящему через Pull Request:

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...