如何预览Github拉取请求差异

ndasle7k  于 2023-03-06  发布在  Git
关注(0)|答案(3)|浏览(142)

如何在分支之间执行diff以获得合并diff的外观
考虑下图

*   master
|\
| * b1
|\ 
| * b2

如果我在b2上,b1上的人打败了我,合并成master
如果我做了
project〉b2 $ git diff源文件/主文件
差异将包括b1,它将不包括在PR中,我如何在命令行中重现它。

r6hnlfcb

r6hnlfcb1#

我相信git merge-tree可以做到这一点,它不执行合并,而是输出一个表示合并的diff。
它需要三个参数:git merge-tree <base-tree> <branch1> <branch2>
我发现将其输出通过管道传输到colordiff,然后再传输到寻呼机中更容易阅读(我使用less-r来处理颜色)。

git merge-tree $(git merge-base HEAD b2) HEAD b2 | colordiff | less -r
6vl6ewon

6vl6ewon2#

您可以使用git fetch origin更新origin/master。这将更新您的远程分支而不更改任何其他内容。
之后,你可以使用git rebase origin/master将你的b2工作重新基于origin/master。现在b2将基于包括b1在内的最新工作。然后git diff origin/master将反映b1的添加。
然后您可以使用git push --force更新PR。

2izufjch

2izufjch3#

在Git 2.38+(Q3 2022)中,你可以使用git merge-tree --write-tree来快速检查你的特性分支和PR目标分支之间是否存在冲突:

git merge-tree --write-tree --no-messages --name-only branch1 branch2

自2023年3月起,使用GitHub Desktop这样的GUI(用于远程GitHub仓库),你实际上可以:
∮ ∮ ∮ ∮
在GitHub Desktop 3.1中,我们引入了查看diff of changes across multiple commits的功能。
这可以让你确信在你将要推送的提交组中没有意外的改变。
GitHub Desktop 3.2让你可以"预览你的拉取请求"--查看你的特性分支引入到仓库默认分支的所有更改的差异。
GitHub Desktop帮助您对Git工作流充满信心,现在我们也希望帮助您对GitHub工作流充满信心。

预览您的拉取请求

如果您发现自己担心将更改推到www.example.com并打开拉取请求,您会喜欢在本地查看拉取请求所带来的信心提升。GitHub.com and open a pull request, you will like the confidence boost reviewing your pull request locally will give you.
您是否曾经提交过一个拉取请求,却意外地发现自己留在了调试器语句中,要求您返回到本地环境,删除调试器,提交并推送更改?这可能会很烦人,很耗时,甚至可能有点尴尬。
现在有了"Preview Pull Request"特性,你可以在打开拉取请求之前看到特性分支上所有提交带来的所有修改的差异,它允许你在离开本地开发环境之前进行双重检查。

相关问题