新手问题 Git 提交问题

yangyangnote · 2016年12月18日 · 最后由 yangyangnote 回复于 2016年12月18日 · 1914 次阅读

Git 分支合并问题

前提

一般开发的时候,我们是从 master 分支切出来一个自己的开发分支,在本地进行开发和调试。完成之后,可以发布到测试服务器上,这时候你可以选择把开发分支合并到 testing 分支之后把 testing 分支发布到测试服务器。

现在我已经从 master 分支上切换到我自己的开发分支,并在里面完成了修改。

问题

这时候我是要把他 commit 以后,push 到远程服务器,在合并到 testing 分支,然后发布到测试服务器 还是把他 commit 以后,先合并到 testing 分支,在用在 testing 分支 push 到远程服务器,在发布到测试服务器呢?感觉是第二种对吗?

@Rei @nightire @awking

咱们简单点,就分两种:feature 和 target,后者可以是 master / staging / testing ... or any names,反正是你要最终合并的目标。

Now,问自己一个问题:我为什么要把(目前还在本地的)feature branch push to origin/feature branch?我没有假设什么标准答案,这个过程有没有完全取决于你或你的团队的工作模型。在某些情况下,这个 pushing 是有必要的,比如说:

我的 feature branch 提交的粒度很细致,step by step 的;并且我们团队有 code review,boss 要求我们在合并到 testing 之前一定要有人帮我做 code review。那么,我势必要给他一个远程可访问的分支,所以我需要先 push local feature branch to remote feature branch

类似的情况也有别的,根据实际情况自己脑补。接着假设这些前置要求都满足了,该进行合并了吧?但是这又会有变化:我能直接 merge target 吗?这个问题同样没有标准答案。有些团队要求的比较严格(比如说很多开源项目),一定要你用 PR 的方式来合并代码,那么这时候你在本地合并 testing 也没有卵用,因为即使你 PR 了 local merged testing,也许你没有 rebasing / squashing 一样会被拒绝并要求你做出正确的 PR。

所以归根结底,git 只是工具罢了,没有绝对的应该不应该,最终还是要看团队的具体要求和执行能力的。

#1 楼 @nightire 恩,明白了,得根据具体要求来灵活使用工具。谢谢!

yangyangnote 关闭了讨论。 12月20日 08:16
需要 登录 后方可回复, 如果你还没有账号请 注册新账号