首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么两个提交之间的"git format-patch“不同于"git diff"?

为什么两个提交之间的"git format-patch“不同于"git diff"?
EN

Stack Overflow用户
提问于 2020-07-08 20:42:05
回答 1查看 583关注 0票数 3

假设有两个基于master的分支x1和x2。git diff x1..x2显示了x1和x2之间的差异,但git format-patch x1..x2 -1 --stdout显示了master和x2之间的差异。有没有办法让format-patch来展示x1和x2之间的区别?

例如:

代码语言:javascript
复制
git branch x1 master
git branch x2 master
git switch x1
echo a >> README
git commit -a -m x1 # one extra line at x1
git switch x2
echo a >> README
echo a >> README
git commit -a -m x2 # 2 extra lines at x2

git diff x1..x2 # show one line betwen x1 and x2
git format-patch -1 --stdout x1..x2 # show 2 lines between master and x2

如果我理解正确的话,git format-patch似乎只发出真正的提交(可以被隐藏),但它不会尝试计算interdiff。

EN

回答 1

Stack Overflow用户

发布于 2020-07-09 04:49:47

为什么两次提交之间的“git format-patch”与“git diff”不同?

对于这两个命令,..的解释是不同的。git diff正在寻找两个提交,git format-patch正在寻找一个或多个补丁系列。

他们都试图提供帮助,把你告诉他们的东西变成他们可以使用的东西。

git diff有效地忽略了这两个点。它在寻找两个提交,你给了它两个提交,那就是两个提交。当您考虑到它对三点语法也有自己的(非常有用和明智的)解释时,这可能就不那么令人费解了。

git format-patch正在寻找补丁系列,因此它使用了所有git rev-list-driven commmands中共享的更常见的点解释。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62795073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档