将修改后的文件签出到Git中的新分支

时间:2015-11-22 01:15:43

标签: git github git-branch

我最近搬到Git参加我组织的项目。

我正在领导一个由4人组成的团队。他们已经分发了我的项目副本,现在他们进行了更改并向我发送了拉取请求。

假设我收到拉取请求并将其合并到dev分支(仍处于待定QA状态)。与此同时,还有另一个非常关键的拉取请求,另一个团队成员从开发人员那里获取最新版本,创建了一个新分支,并在新分支中应用了修复程序,然后向我发送了拉取请求。

问题是,我只想提取针对关键修复所做的更改。如果在此阶段我将更改合并到生产中,它还将合并先前的更改,这些更改仍在等待质量保证。

是否可以只签出需要更改的文件,这样会迫使我将当前的开发工作推向生产?

我已经使用Google搜索并找到了一个命令git checkout --orphan branchname,它将创建一个空白分支,现在在结帐后,它将自动暂存整个项目以进行提交。所以我使用git reset HEAD --来取消所有内容。

现在我刚刚添加了所需的文件并提交了它,但是当我向远程仓库提出拉取请求时,它表示两个分支都有完全不同的历史记录。

谁能告诉我如何实现这一目标?。

1 个答案:

答案 0 :(得分:0)

你想“挑选”关键修复。这只需要更改该变更集,而无需采取任何其他措施。

  1. 在您的开发分支中找到变更集哈希。
  2. git checkout -b my-critical-fix production
  3. git cherry-pick $HASH
  4. 这将为您提供一个名为“my-critical-fix”的分支,基于生产,只需要您想要的更改。现在,您可以检查它,并在您满意时为生产分支创建拉取请求。