我的公司在this blog附近。
我们为生产创建 master 分支。 我的案例是网络开发。
我们要做的就是
开发人员从 master
分叉他们的功能/错误
git checkout -b feature/featureA
git checkout -b bug/B
通过这种方式,我们将获得已经在发布行中的新代码。在登台服务器中,我们使用 testing 分支。因此,当任何功能想要进行测试时,它将合并到该分支
在我们使用的登台服务器中
git checkout testing
git pull
有release分支处理热修复,每个热修复在合并到master之前都会合并到这个分支。这个想法是 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 以连接一些脚本?反正我从来没用过。