GIT WorkFlow » История » Версия 1
Владимир Ипатов, 04.03.2014 19:58
| 1 | 1 | Владимир Ипатов | h1. GIT WorkFlow |
|---|---|---|---|
| 2 | 1 | Владимир Ипатов | |
| 3 | 1 | Владимир Ипатов | В ветку develop должны попадать уже проверенные изменения. Поэтому кидать в нее не утвержденные пулл реквесты смысла нет. |
| 4 | 1 | Владимир Ипатов | |
| 5 | 1 | Владимир Ипатов | Поэтому предлагается для согласования создавать *в основном репозитории* новые feature-веткии и в них совместно работать. |
| 6 | 1 | Владимир Ипатов | Когда feature-ветка будет одобрена, она вливается в develop и удаляется. |
| 7 | 1 | Владимир Ипатов | |
| 8 | 1 | Владимир Ипатов | Сценарий такой: |
| 9 | 1 | Владимир Ипатов | |
| 10 | 1 | Владимир Ипатов | h2. Автор изменения |
| 11 | 1 | Владимир Ипатов | |
| 12 | 1 | Владимир Ипатов | Создает в своем локальном репе ветку FEATURE на основе develop |
| 13 | 1 | Владимир Ипатов | Когда ветка готова к публикации: |
| 14 | 1 | Владимир Ипатов | |
| 15 | 1 | Владимир Ипатов | <pre> |
| 16 | 1 | Владимир Ипатов | git checkout develop |
| 17 | 1 | Владимир Ипатов | git pull upstream develop |
| 18 | 1 | Владимир Ипатов | git checkout FEATURE |
| 19 | 1 | Владимир Ипатов | git rebase -i develop # объединять коммиты не обязательно |
| 20 | 1 | Владимир Ипатов | git push upstream FEATURE |
| 21 | 1 | Владимир Ипатов | </pre> |
| 22 | 1 | Владимир Ипатов | |
| 23 | 1 | Владимир Ипатов | Сообщает участникам, что ветка FEATURE готова для тестирования |
| 24 | 1 | Владимир Ипатов | |
| 25 | 1 | Владимир Ипатов | h2. Участник |
| 26 | 1 | Владимир Ипатов | |
| 27 | 1 | Владимир Ипатов | Получив сообщение о необходимости обработки FEATURE |
| 28 | 1 | Владимир Ипатов | |
| 29 | 1 | Владимир Ипатов | <pre> |
| 30 | 1 | Владимир Ипатов | git fetch upstream |
| 31 | 1 | Владимир Ипатов | git checkout -t upstream/FEATURE |
| 32 | 1 | Владимир Ипатов | </pre> |
| 33 | 1 | Владимир Ипатов | |
| 34 | 1 | Владимир Ипатов | Получает ветку FEATURE, привязанную к upstream/FEATURE. |
| 35 | 1 | Владимир Ипатов | Из этой ветки, git push будет по умолчанию проталкивать в upstream/FEATURE. |
| 36 | 1 | Владимир Ипатов | |
| 37 | 1 | Владимир Ипатов | Далее участник исследует/тестирует изменения. |
| 38 | 1 | Владимир Ипатов | и т.д. |
| 39 | 1 | Владимир Ипатов | |
| 40 | 1 | Владимир Ипатов | Если участник исправляет код, то он сохраняет изменения в ветке FEATURE и делает |
| 41 | 1 | Владимир Ипатов | |
| 42 | 1 | Владимир Ипатов | <pre> |
| 43 | 1 | Владимир Ипатов | git push |
| 44 | 1 | Владимир Ипатов | </pre> |
| 45 | 1 | Владимир Ипатов | |
| 46 | 1 | Владимир Ипатов | h2. Завершение FEATURE |
| 47 | 1 | Владимир Ипатов | |
| 48 | 1 | Владимир Ипатов | Когда будет принято решение влить изменения в develop, автор или кто-то еще с доступом к upstream: |
| 49 | 1 | Владимир Ипатов | |
| 50 | 1 | Владимир Ипатов | <pre> |
| 51 | 1 | Владимир Ипатов | git checkout develop |
| 52 | 1 | Владимир Ипатов | git pull upstream develop |
| 53 | 1 | Владимир Ипатов | git checkout FEATURE |
| 54 | 1 | Владимир Ипатов | git rebase -i develop # объединяет коммиты, пишет анотацию |
| 55 | 1 | Владимир Ипатов | git checkout develop |
| 56 | 1 | Владимир Ипатов | git merge --no-ff FEATURE |
| 57 | 1 | Владимир Ипатов | git branch -d FEATURE |
| 58 | 1 | Владимир Ипатов | git push upstream develop |
| 59 | 1 | Владимир Ипатов | git push upstream --delete FEATURE |
| 60 | 1 | Владимир Ипатов | </pre> |
| 61 | 1 | Владимир Ипатов | |
| 62 | 1 | Владимир Ипатов | h2. Полезные команды |
| 63 | 1 | Владимир Ипатов | |
| 64 | 1 | Владимир Ипатов | Просмотр, какие коммиты еще не вошли в develop (или другую ветку относительно текущей) |
| 65 | 1 | Владимир Ипатов | |
| 66 | 1 | Владимир Ипатов | <pre> |
| 67 | 1 | Владимир Ипатов | git cherry -v develop |
| 68 | 1 | Владимир Ипатов | </pre> |
| 69 | 1 | Владимир Ипатов | |
| 70 | 1 | Владимир Ипатов | Подгрузка диапазона коммитов из другой ветки |
| 71 | 1 | Владимир Ипатов | |
| 72 | 1 | Владимир Ипатов | <pre> |
| 73 | 1 | Владимир Ипатов | git checkout OTHER_BRANCH |
| 74 | 1 | Владимир Ипатов | git cherry-pick HASH..HASH |
| 75 | 1 | Владимир Ипатов | </pre> |