我公司紧随最近的这个博客 http://blog.romebuilder.com/2011/07/448/.
我们创造了master生产分支。我的案例是网络开发.
我们做的步骤是
开发人员从以下地方分叉出他们的功能/错误master
git checkout -b feature/featureA
git checkout -b bug/B
通过这种方式,我们将获得已经发布的新代码。在登台服务器中,我们使用testing分支。因此,当任何功能想要进行测试时,它将合并到该分支
在登台服务器中我们使用
git checkout testing
git pull
有release处理热修复的分支,每个热修复都会在合并到主分支之前合并到这个分支。这个想法是,release 分支将在合并到 master 之前打包一些提交,如果出现问题,它只需使用如下命令
git reset --hard HEAD^
暂时的。
让我们看看我的完整工作步骤
git checkout master # Go to Master
git checkout -b feature/New # New branch
老板发来电子邮件修复严重错误
git stash
git checkout master
git checkout -b hotfix/a
做事
git commit
git checkout release
git merge hotfix/a
git checkout master
git merge release # In case that you want to pack all ready to production
生产中
git tag -d previous
git tag previous
git pull
哎呀!不工作
git checkout previous
新提交合并
git checkout master
git pull
继续我的工作
git checkout feature/New
git stash pop #Restore workspace
git commit
git checkout testing # ready to mix a test
git merge feature/New
准备发布该功能
git checkout release
git merge feature/New
这是因为测试分支中的所有内容都已准备好部署。因此,当将所有准备好的功能合并到release分支,现在,你可以进行最后的测试了。
当一切现在都投入生产时,我们会这样做
git checkout testing
git merge master
git checkout release
git merge master
自动化脚本
我想你可以看看.git/hooks/post-commit.sample
在提交代码后连接一些脚本?反正我从来不用它。