Как использовать ветки Git Feature с живыми обновлениями и слить обратно с мастером? - PullRequest
2 голосов
/ 27 апреля 2010

У меня есть производственный веб-сайт, на котором проверен мастер, и веб-сайт для разработчиков, где я занимаюсь разработкой в ​​тематических ветках.

Когда функция объединяется с мастером, я делаю это на сайте разработки:

(currently on the new-feature branch)
$ git commit -m"new feature finished"
$ git push
$ git checkout master
$ git merge new-feature
$ git push

А на производственной площадке:

(currently on master branch)
$git pull

Это работает для меня. Но иногда клиент звонит и нуждается в небольшом изменении на сайте быстро. Я могу сделать это на производстве на мастере и толкнуть мастер, и это прекрасно работает.

Но когда я использую ветвь функций для небольшого изменения, я получаю пробел:

(On production on branch master)
$ git branch quick-feature
$ git checkout quick-feature
$ git push origin quick-feature
$ edit files...
$ git add .
$ git commit -m"quick changes"
$ git push # until this point the changes are live
$ git checkout master #now the changes are not live anymore GAP
$ git merge quick-feature # now the changes are live again
$ git push

Я надеюсь, что смогу прояснить намерение этого рабочего процесса. Вы можете порекомендовать что-нибудь получше?

Ответы [ 2 ]

1 голос
/ 27 апреля 2010

если ваша ветвь с быстрыми функциями разработана поверх главной, вы можете сбросить основную ветвь, оставаясь в ветке с быстрыми функциями:

git branch -f master

Таким образом, вы избегаете checkout master, который временно удаляет из вашего рабочего дерева функцию быстрого доступа.

x--x--x  (master)
       \                          => x--x--x--f--f--f--f (master, quick-feature)
        -f--f--f (quick-feature)

Другое решение, когда вы возвращаетесь к мастеру, - запросить слияние

 git checkout --merge master

Это позволяет вам сохранить quick-feature модификацию с учетом текущего состояния мастера.

0 голосов
/ 27 апреля 2010

«вносить изменения в производство» просто неправильно, вам не следует этого делать.

Правильный рабочий процесс будет: - Оформить заказ мастера на тестовом / развивающем сайте / в песочнице / на сервере / что угодно - внести изменения, проверить изменения - зафиксировать изменения, объединиться с мастером, развернуть в производстве

вот для чего нужны ветки. Вы могли бы даже сделать свой рабочий процесс более автоматическим, используя хуки в git, которые будут автоматически развертывать в производственной среде все, что вы «толкаете» в определенной ветке, которая может быть главной или другой выделенной веткой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...