是的,又是一个Git Flow的问题.. :(
我很了解"标准"的Git Rebase流程:
1. 开发者从上游分支(比如master)创建一个追踪分支(比如featureA) 2. 开发者编写代码,提交代码,在拉取最新代码时使用rebase,然后继续编写、提交、再次使用rebase进行操作等等 3. 完成编码,开发者将提交压缩并推送到master分支
我的问题在于这个流程没有留下任何空间用于与主分支合并之前的代码审核。评审人员只能在代码合并到主分支时才能看到更改。如果开发者需要对代码进行微调,则会对给定功能有多个主分支提交。理想情况下,只有一个。
我知道几种可以解决此问题但不理想的选项:
- 让开发者将功能分支推送到远程。这种方法的问题是,在他们从主分支rebase后,推送将不得不强制执行,虽然在这种情况下可能是安全的,但这不是我想要作为常规业务的事情。 - 不要将上游更改rebase到功能分支,而是将它们合并。使用此方法,我无法压缩功能分支并将提交推回主分支(对吗?) - 使用Gerrit/Github。但我猜想在纯Git中也有一种方法可以实现?
是否有更好的方法?
我很了解"标准"的Git Rebase流程:
1. 开发者从上游分支(比如master)创建一个追踪分支(比如featureA) 2. 开发者编写代码,提交代码,在拉取最新代码时使用rebase,然后继续编写、提交、再次使用rebase进行操作等等 3. 完成编码,开发者将提交压缩并推送到master分支
我的问题在于这个流程没有留下任何空间用于与主分支合并之前的代码审核。评审人员只能在代码合并到主分支时才能看到更改。如果开发者需要对代码进行微调,则会对给定功能有多个主分支提交。理想情况下,只有一个。
我知道几种可以解决此问题但不理想的选项:
- 让开发者将功能分支推送到远程。这种方法的问题是,在他们从主分支rebase后,推送将不得不强制执行,虽然在这种情况下可能是安全的,但这不是我想要作为常规业务的事情。 - 不要将上游更改rebase到功能分支,而是将它们合并。使用此方法,我无法压缩功能分支并将提交推回主分支(对吗?) - 使用Gerrit/Github。但我猜想在纯Git中也有一种方法可以实现?
是否有更好的方法?