Git: 多分支部署工作流程
Git: multiple branches deployment workflow
我正在尝试了解在使用多个分支时如何最好地改进我的工作流程,每个分支都将部署到特定环境。
让我们先说我正在使用 BitBucket 托管我的 git 存储库,我在上面有三个分支:origin/master
、origin/staging
和 origin/production
。
每当我完成一项新任务时,我都会将该任务提交到我的本地分支 master
,然后将其推送到 origin/master
。之后,如果我想将该提交部署到暂存区,我只需打开分支和 运行 a "sync"(使用 BitBucket 功能),以便分支 origin/staging
与 origin/master
匹配.
但是,当我查看 SourceTree 上的存储库时,我感觉自己弄得一团糟,这可能不是正确的做法。
这是存储库在 SourceTree 上的样子:
这是它在 BitBucket 上的样子:
首先:为什么说origin/production
和origin/staging
分别比origin/master
提前4次和6次提交?
其次,如果我正在做的事情wrong/can有待改进,你会建议我做什么?
production
和 staging
位于 master
分支之前,因为存在 master
中不存在的合并提交。您可以在 SourceTree 屏幕截图中轻松看到这一点:origin/production
是在 master 之前进行的四次(合并)提交,这四次提交带有 Merged master into production
消息。它与您的 staging
分支相似。
您之所以会遇到这种情况,是因为您反复将 master
分支合并到其他分支,但从未将其他分支合并回 master。这没有错。只要 "Ahead" 计数不打扰您,您就大功告成了。如果您希望在 master
之前没有提交,您可以将 production
和 staging
合并回 master。这不会更改您的任何数据,合并提交也会成为您 master
历史记录的一部分。
我正在尝试了解在使用多个分支时如何最好地改进我的工作流程,每个分支都将部署到特定环境。
让我们先说我正在使用 BitBucket 托管我的 git 存储库,我在上面有三个分支:origin/master
、origin/staging
和 origin/production
。
每当我完成一项新任务时,我都会将该任务提交到我的本地分支 master
,然后将其推送到 origin/master
。之后,如果我想将该提交部署到暂存区,我只需打开分支和 运行 a "sync"(使用 BitBucket 功能),以便分支 origin/staging
与 origin/master
匹配.
但是,当我查看 SourceTree 上的存储库时,我感觉自己弄得一团糟,这可能不是正确的做法。
这是存储库在 SourceTree 上的样子:
这是它在 BitBucket 上的样子:
首先:为什么说origin/production
和origin/staging
分别比origin/master
提前4次和6次提交?
其次,如果我正在做的事情wrong/can有待改进,你会建议我做什么?
production
和 staging
位于 master
分支之前,因为存在 master
中不存在的合并提交。您可以在 SourceTree 屏幕截图中轻松看到这一点:origin/production
是在 master 之前进行的四次(合并)提交,这四次提交带有 Merged master into production
消息。它与您的 staging
分支相似。
您之所以会遇到这种情况,是因为您反复将 master
分支合并到其他分支,但从未将其他分支合并回 master。这没有错。只要 "Ahead" 计数不打扰您,您就大功告成了。如果您希望在 master
之前没有提交,您可以将 production
和 staging
合并回 master。这不会更改您的任何数据,合并提交也会成为您 master
历史记录的一部分。