git如何基于分支拉取分支

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git如何基于分支拉取分支相关的知识,希望对你有一定的参考价值。

参考技术A 假如目前远端有3个分支 master,develop,develop_0.1

假如想基于devlop_0.1拉取一个新的分支develop_0.2有两种方法

1. git checkout devlop_0.1

2. git pull

3.git checkout -b devlop_0.2

4.git push origin devlop_0.2

也可以通过branch创建分支

1.git checkout devlop_0.1

2.git branch devlop_0.2

3.git push origin devlop_0.2

在功能分支上测试时如何使用 Git 拉取请求

【中文标题】在功能分支上测试时如何使用 Git 拉取请求【英文标题】:How to use Git pull requests when testing on feature branch 【发布时间】:2016-07-24 00:00:53 【问题描述】:

我们刚刚升级到最新版本的 BitBucket,它允许我们禁用直接推送到主分支。现在我们使用的是 Github Flow 流程的一个版本(即从主分支克隆功能分支),并且只能使用拉取请求从功能/错误修复分支合并到主分支。 我们希望在仍然在功能分支上工作的同时,在合并到主分支之前执行我们的测试(一些是自动化的,一些是手动的)。我正在考虑按如下方式使用拉取请求周期:

    为功能发出拉取请求 团队批准拉取请求 测试功能 测试完成后,合并到 master

如果我们等到推送到主服务器后再进行测试,这可能会导致错误和回归也被引入主服务器。

我的问题是:由于其他用户总是有可能使用其他拉取请求合并到主节点,这意味着我的拉取请求可能必须重新设置为主节点的更新状态,如果有时间的话在最初打开拉取请求后经过。这意味着要么再次执行测试,要么在至少一个未完成的拉取请求处于活动状态时锁定存储库。但是锁定存储库也有它的问题,因为没有其他人能够工作。

还有其他人遇到过这个问题吗?

谢谢, 保罗

【问题讨论】:

【参考方案1】:

是的,对于任何使用功能分支的团队来说,合并到 master 的争用都是一个问题。

如果团队可以独立工作且无需协调,则团队工作速度最快,因此锁定通常不是一个好的解决方案。

通常的解决方案是这样的:

    在其功能分支上开发功能 测试功能 根据 master 重新定位功能分支(或将 master 合并到功能分支中) 如果存在重大合并冲突,请返回 2。 将功能分支合并到master 回归测试大师

当功能较小且测试速度较快时,此工作流程效果最佳,因此

尽可能自动化您的测试。努力会得到回报。彻底的自动化验收测试将同时用于功能的合并前测试和 master 的回归测试。

计划您的功能,以便可以开发和合并以小块掌握。在某种程度上,这可以通过找到独立有用的更大功能的部分来完成,这样可以独立地部署和公开给用户。否则,在功能完成之前开发和部署功能的各个部分而不向用户公开它们,使用feature toggle 隐藏在功能完成之前用户可见的部分功能。

李>

有时仍然需要锁定存储库以进行无法合并的非常大的更改,例如框架升级。

【讨论】:

以上是关于git如何基于分支拉取分支的主要内容,如果未能解决你的问题,请参考以下文章

在功能分支上测试时如何使用 Git 拉取请求

Git 拉取远程代码

git如何拉取主版本中的最新代码到自己空间的分支

Git拉取远程分支到本地

Git-TFS - 如何在拉取请求被批准之前确保分支是最新的?

git clone新项目后如何拉取其他分支代码到本地