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> |