如何在长期使用的Git分支上实现错误修复?

时间:2017-10-09 16:46:33

标签: git

我有一个实时的制作网站,我即将开始在我的网站上添加一项新功能,这需要花费几周的时间来实施。如果我必须进行突然的错误修复并将其部署到生产环境中,那么在不中断长期功能的工作或者必须将不完整的功能代码推送到生产环境的情况下,适当的Git工作流程是什么?在我打开我的网站之前,我不会担心任何Git合并问题,但现在我有一个生产网站,我需要非常小心。

我有三个网络服务器," dev"," staging"和" prod"映射到我的三个主要Git分支," dev"," staging"和" master"。 staging和prod服务器配置相同。所有工作都在我的开发服务器上完成。请注意,我是唯一的开发人员,所以我不必担心与其他开发人员的合并冲突。这是我目前的Git工作流程:

# On my dev server, create a new feature branch off my dev branch.
git checkout -b new-feature dev
(Write and test new feature)
git add ...
git commit ...

# Merge new feature to staging branch, push to staging server, and test.
git checkout staging
git merge --no-ff new-feature
git push
(Test feature on staging server)

# Merge new feature to dev branch and push.  Dev now becomes the main
# branch for all future development.
git checkout dev
git merge --no-ff new-feature
git push

# Finally, merge the new feature now contained in dev into master and 
# push that new feature to production.  Note that I only ever merge 
# new features into production from the dev branch.
git check master
git merge --no-ff dev
git push
(Reload production server code and restart web server)

如果我现在必须修复一个错误或者实现一个小的一天或两天的功能而不停止对需要几周构建的新功能的工作,我是否应该从我的开发分支创建一个新的修复bug分支,合并并将其推送到暂存,合并并将其推送到dev,然后将dev合并到master并将其推送到生产,如上所述,然后返回并将fix-bug合并到我的长期分支中,如下所示?

git checkout long-lived
git merge --no-ff bug-fix
(Finish the long-lived new feature branch)

(Now repeat my usual workflow as described above)
git checkout staging
git merge --no-ff long-lived
git add ...
git commit ...
etc.

是否有更好的" Git最佳实践"这样做的方法?有什么我应该注意的吗?我是Git" noob"所以所有建议都将受到赞赏。

0 个答案:

没有答案
相关问题