Git stash pop 后 Git diff 不起作用

6

git stash pop后,出现一些冲突,例如:

<<<<<<< Updated upstream
int foo = 5;
=======
int foo = 6;
>>>>>>> Stashed changes

我已经在代码中解决了这些问题,但现在在提交之前无法预览我的更改。我只看到下面的东西,而我知道有一些更改:

diff --cc mainwindow.cpp
index 24dc025,2c44ad8..0000000
--- a/mainwindow.cpp
+++ b/mainwindow.cpp

如何强制git diff将当前源代码与最后一次提交进行比较?

它只给出了 * 未合并的路径 mainwindow.cpp - sashoalm
git status --short 的输出是什么? - michas
它给出了 UU mainwindow.cpp - sashoalm
根据我的类似经验,我怀疑 git 是针对存储的代码而不是最近的提交进行差异比较。但我还不够专业,无法给出完整的答案。 - Josiah Yoder
1个回答

11

你的 pop 导致了合并冲突。为了解决它,你需要编辑文件(你已经完成了)然后调用 git add mainwindow.cpp 来告诉 git,你已经解决了冲突。

如果你想预览你的更改,你可以使用 git diff --cached 命令。这是因为 git add 已经把你的更改添加到了暂存区(index)。


2
有趣的是,如果你现在执行以下命令:git stash,然后再执行 git stash pop,传统的 git diff 将按预期工作。也许我期望 git stash pop 成为 git stash 的反函数(实际上),带你回到一个相同的状态,这并不适用于这里。 - Kaitain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接