Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在同时处理3+个分支时,适当管理git分支历史的工作流是什么?_Git_Github - Fatal编程技术网

在同时处理3+个分支时,适当管理git分支历史的工作流是什么?

在同时处理3+个分支时,适当管理git分支历史的工作流是什么?,git,github,Git,Github,总结问题:在git中,处理多人同时在多个分支上工作、在重叠的文件集上工作、并且更改不是按时间顺序进行的情况,正确的工作流是什么 鉴于分支A和B处于拉请求阶段,且分支Z已经合并为master,开始分支C开发需要Z提供的功能的正确工作流是什么,除了B提供的一些更好的文件,这些文件注定会超过Z的更改,但只是还没有通过拉请求让它成为大师 重新创建相关情况的步骤 将github项目克隆到我的本地计算机。 创建一个新分支a并进行更改、提交、推送到github上同名的原始分支、发出请求 创建一个新的分支B并进

总结问题:在git中,处理多人同时在多个分支上工作、在重叠的文件集上工作、并且更改不是按时间顺序进行的情况,正确的工作流是什么

鉴于分支A和B处于拉请求阶段,且分支Z已经合并为master,开始分支C开发需要Z提供的功能的正确工作流是什么,除了B提供的一些更好的文件,这些文件注定会超过Z的更改,但只是还没有通过拉请求让它成为大师

重新创建相关情况的步骤

将github项目克隆到我的本地计算机。 创建一个新分支a并进行更改、提交、推送到github上同名的原始分支、发出请求 创建一个新的分支B并进行更改、提交、推送到github上同名的原始分支、发出请求 同时,有人创建了一个分支Z,推送到源分支,并且已经合并了pull请求。 如何开发需要Z和B的功能C?警告是Z和B包含对相同文件的修改。对于一些文件,我想要Z版本。对于其他人,我想要B版。 从这里开始使用功能C的正确步骤是什么?我知道我需要Z和B来做这件事。我应该在本地主机上做一个git拉取来拾取Z,生成一个分支C,然后将B合并到C吗?我试过这个,但它不起作用,因为B中的旧文件接管了我想要从Z中进行的更改。有没有一种方法可以手工挑选我想要从Z中进行的更改,除了我想要从分支B中获得的几个文件:changefromb.c,changefromb.h

还是我做错了?现在我们很多人每天都在推这些东西,我发现我不知道git的哪些功能可以恰当地处理这些问题。

git checkout允许您选择所需的文件:

git checkout B changefromb.c # places B's copy of changefromb.c into current branch
如果你想用B文件的精确副本来创建C,我会从分支Z创建一个分支C,并使用上面的命令从B复制相关的更改


否则,如果要从B复制更改并将其应用于现有版本的Z之上,则可以使用从B选择特定提交以复制到新分支C。具体取决于提交的原子性,您可能需要创建一个单独的清理提交,以撤消与樱桃挑选的提交无关的更改。

我发现解决此问题的最简单方法是在主分支之前创建我自己的分支,它从真正的主分支提取,但也包含主分支中尚未包含的最新代码。我一直在给分支master-dev打电话。

您可以使用git-flow。人们也问了自己同样的问题,并提出了这个伟大的方法来管理多个分支的工作

教程对此进行了完美的解释