有没有办法从功能分支中删除合并的分支?

时间:2019-04-18 18:56:33

标签: git github

我有一个功能分支,大约2个月前开始。有时,我一直在将master合并到我的功能分支中,以确保它仍可与生产站点一起使用。现在我已经完成了,某人想只看我在功能分支上所做的工作。有没有办法删除我所做的母版的合并,以便差异仅包含我在Feature分支上的工作?

2 个答案:

答案 0 :(得分:1)

您有一些选择。由于这是Github,所以最简单的方法是put up your branch as a draft Pull Request。然后他们可以使用Github查看工具来查看您的更改和提交。

您的审阅者可以使用普通的Git工具查看您的更改。修订选择master..<your branch>将选择您分支中可到达的提交,但不包括可从master到达的提交;这意味着它将仅引用分支上的提交。它将显示合并提交,但不显示已合并的内容。因此,git diff master..<your branch>查看差异,git log master..<your branch>仅查看您的提交。有关更多信息,请参见gitrevisions

如果您确实要消除更新合并,则可以rebase your commits on top of master。这将有效地重写您的分支,就像您一直在当前版本的master之上编写分支一样。可能有冲突。尽管这是清理您的历史记录的不错选择,但我经常自己动手做,很容易造成混淆。如果您仍在学习Git并且没有专家可以指导您解决潜在问题,我不建议您使用此选项。

答案 1 :(得分:0)

通常,例如,如果您的feature分支是从develop分支出来的,您会这样做

git diff develop..feature

以及feature上的develop提交带来的总体差异。

或者,您可以使用相同范围的refspecs(develop..feature)馈给git log并自己获取提交。我想这取决于您的审核过程。


评论后编辑:

(已删除,我的回答不太理想,因为Cherry-pick会带回合并提交。请按照Schwern的建议进行重新设置)