2016-09-15 3 views
0

Когда у меня есть текущие изменения в ветке dev, и что-то ломается в производственной среде, тогда я переключаюсь на master, исправляю проблему и синхронизирую производственную среду с веткой master.Правильный способ объединения master в ветвь dev

Теперь я возвращаюсь к dev ветке. Эта ветвь синхронизируется с окружением test и staging.

Что такое надлежащий способ принести ветке dev, которая исправит мастер?

В настоящее время я делаю git merge master, когда в dev филиал.

Но при слиянии подобным образом я заметил, что создается новая фиксация, создающая измененные файлы с master.

Я был под впечатлением при слиянии, что фиксации, созданные на главном при применении исправления, будут просто вставлены в ветвь dev.

ответ

3

При условии, что среда постановки чистая (как, вы не имеете никакого незавершенного или unstashed изменения в вашей отрасли разработки) ...

git merge master 

... это идиоматический * способ объединить изменяется от вашего основного филиала.

Когда вы сливаетесь, вы вносите все изменения, которые находятся на кончике этой ветви, поэтому вы будете вводить все изменения от мастера одновременно, вам придется иметь дело с конфликтами слияния, если они существуют. Если вы не можете ускорить пересылку изменений с master на dev, то вы также получите фиксацию слияния.

Причина, по которой вы можете увидеть много коммитов, может быть связана с тем, что вы не можете переадресовать ветку dev, чтобы выстроиться в линию с помощью мастера. Это не должно вызывать вас; просто фиксируйте и вставляйте эти изменения в свою ветвь dev.

*: Вы также можете сделать git rebase master в то время как на dev, но это имеет гораздо более высокий риск, так как вы переписываете историю. Однако делает для более чистой истории.

+0

Спасибо, сэр, за все объяснение. Это очень помогает, так как я новичок в git и очарован этим до сих пор. – user2094178

Смежные вопросы