我正在使用Azure DevOps Git
。我有一个回购,有两个分支机构开发和发行。我在Release分支中进行了5次更改,都在不同的文件夹中,都在相同的提交中。现在,我只需要将其中3个更改合并到开发分支,即其中2个更改不应合并到开发分支。我该怎么做?
在Azure网页中,我转到我的回购,单击拉取请求链接打开它,然后单击New Pull request按钮开始创建新的拉取请求。然后,对于源分支,我选择Release分支,而对于目标分支,我则选择Development。其"文件"选项卡显示5个文件。但我看不出有任何选择不选择他们中的任何一个。
Pranav Singh的评论将是最好的选择,樱桃采摘。当您创建PR时,您正在将一个分支合并到另一个分支。如果你只想合并一部分更改,我会在默认分支的基础上创建一个新分支,然后将更改挑选到新分支中。您不想从一个分支中选择默认分支,因为这会破坏PR的目的。
https://git-scm.com/docs/git-cherry-pick原始git手册是一个很好的资源,但有时很难通读。
有时在这里阅读更容易https://www.atlassian.com/git/tutorials/cherry-pick
我还要说的是,一旦你完成PR,请确保将默认分支合并或重新设置为原始分支(你从中挑选的分支(的基础。这样,如果它导致任何合并冲突,你可以尽早解决它们。
如果您从未想要Development
中的这些更改,您可以恢复这两个特定的更改,并将其合并到Development
:中
在您的本地回购中:
-
来自
Release
分支 -
创建一个新分支(选择一个名称,我将称之为
wip
( -
在该分支上,还原要跳过的两个提交:
git revert <hash of commit1> git revert <hash of commit2>
-
将此分支推到devops:
git push -u origin wip
关于DevOps:
- 创建一个新的合并请求,要求将
wip
合并到Development