我最近搬到Git参加我组织的项目。
我正在领导一个由4人组成的团队。他们已经分发了我的项目副本,现在他们进行了更改并向我发送了拉取请求。
假设我收到拉取请求并将其合并到dev分支(仍处于待定QA状态)。与此同时,还有另一个非常关键的拉取请求,另一个团队成员从开发人员那里获取最新版本,创建了一个新分支,并在新分支中应用了修复程序,然后向我发送了拉取请求。
问题是,我只想提取针对关键修复所做的更改。如果在此阶段我将更改合并到生产中,它还将合并先前的更改,这些更改仍在等待质量保证。
是否可以只签出需要更改的文件,这样会迫使我将当前的开发工作推向生产?
我已经使用Google搜索并找到了一个命令git checkout --orphan branchname
,它将创建一个空白分支,现在在结帐后,它将自动暂存整个项目以进行提交。所以我使用git reset HEAD --
来取消所有内容。
现在我刚刚添加了所需的文件并提交了它,但是当我向远程仓库提出拉取请求时,它表示两个分支都有完全不同的历史记录。
谁能告诉我如何实现这一目标?。
答案 0 :(得分:0)
你想“挑选”关键修复。这只需要更改该变更集,而无需采取任何其他措施。
git checkout -b my-critical-fix production
git cherry-pick $HASH
这将为您提供一个名为“my-critical-fix”的分支,基于生产,只需要您想要的更改。现在,您可以检查它,并在您满意时为生产分支创建拉取请求。