分支和主干上的单次提交之间的区别

Difference between single commit on branch and trunk

我已经看到了所有关于差异文件的问题,但是 none 确实符合我的用例。

情况:

a - b - c - d (master)
 \ e (tag) - f - g - h (my_branch)

现在我希望看到差异,就像我将 h 挑选到 d 上一样。

当您正在开发稳定版本的软件并需要针对主干发送补丁时,就会发生这种情况。

有谁知道我怎样才能产生这样的差异?

要查看 2 次提交之间的区别,只需执行 git diff h d.

根据评论进行编辑

我能想到的最少步骤是:

git checkout master
git cherry-pick h --no-commit
git diff --staged
git reset --hard

我能想到的最好的办法是你在不提交的情况下进行樱桃挑选,然后你可以看到差异,我知道这不是很优雅

git cherry-pick -n <commit>    # get your patch but dont commit

然后您可以使用 git diff 查看更改,然后如果您实际上不想提交它们而是删除它们

git reset    # unstage
git checkout -- application/  # or whatever folder your files are in

这就是我最好的尝试,希望对您有所帮助