我有一个功能分支,大约2个月前开始。有时,我一直在将master合并到我的功能分支中,以确保它仍可与生产站点一起使用。现在我已经完成了,某人想只看我在功能分支上所做的工作。有没有办法删除我所做的母版的合并,以便差异仅包含我在Feature分支上的工作?
答案 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的建议进行重新设置)