我可以将隐藏的更改查看为:
$ git stash show -p stash@{0}
diff --git a/t/database/test.t b/t/database/test.t
index 3e9dcf87..4326d7e0 100644
--- a/t/database/test.t
+++ b/t/database/test.t
@@ -249,6 +249,8 @@ begin
loop raise notice ''before: %%'', r; end loop;
end if;
+ -- delete OLD if NEW.sys_period is empty
+ -- or create pid to track full version history. See transaction time
UPDATE %1$s
SET
-- NOTICE: Here new values for sys_time column should be now() instead of sys_time()
但是当我执行git show stash@{0}
或git show -p 803d7231
时,它仅显示信息而没有更改:
commit 803d7231aebc79819d69b5e8505c4be7f747441f (refs/stash)
Merge: 2b30b862 3f34d241
Author: Eugen Konkov <kes-kes@yandex.ru>
Date: Mon Apr 27 12:34:43 2020 +0300
On bi-temporal: TODO: Bi-Temporal improvement: track how data is changed
为什么git show
不显示差异?
答案 0 :(得分:2)
隐藏实际上是合并提交,git show
将隐藏一个看起来像被接受的合并更改的差异块。
您可以使用-m
选项:
git show -m stash@{0}
或明确要求stash@{0}
与它的第一个父项(您最近一次的活动提交)之间的区别:
git diff stash@{0}^ stash@{0}
stash
实际上是合并提交 git stash
实际上创建了两个提交:
您可以查看stash@{0}
的历史记录:
$ git log --graph --oneline stash@{0}
* afffe0c (refs/stash) WIP on master: 6615405 commit: created file "a.txt"
|\
| * 6ebdc03 index on master: 6615405 commit: created file "a.txt"
|/
* 6615405 (HEAD -> master) commit: created file "a.txt"
* 170d9f8 empty
git stash show
和git show
git stash show -p
知道您通常希望查看stash@{0}
与您的作品(其第一父作品)之间的差异;
git show stash@{0}
将此提交显示为合并提交。
如果修改是在您藏匿时分阶段进行的,则这些修改将成为index on xxx : ...
提交的一部分,并且git show
在默认情况下将不显示此差异块。
请参见git help show
:
对于提交,它显示日志消息和文本差异。它还以git diff-tree --cc产生的特殊格式显示合并提交。
--cc
此标志更改了合并提交补丁的显示方式,与-c选项类似。它隐含-c和-p选项,并通过省略不感兴趣的块(它们在父级中的内容只有两个变体,合并结果选择其中一个而不进行修改)来进一步压缩补丁输出。当所有的块都不感兴趣时,就不会显示提交本身和提交日志消息,就像其他“空差异”情况一样。
答案 1 :(得分:1)
存储是具有2个父级的合并提交。根据{{3}},git show <merge-commit>
以git diff-tree --cc
产生的特殊格式显示合并提交。
此标志更改了合并提交补丁的显示方式。 与-c选项类似的方法。它意味着-c和-p选项以及 通过省略无趣的块进一步压缩了补丁输出 其父母中的内容只有两个变体和合并 结果选择了其中一个,而没有修改。当所有的帅哥都 无趣的是,提交本身和提交日志消息不是 如图所示,就像其他“空差异”案例一样。
我认为不会显示差异,因为所有大块都不感兴趣,因此在您的情况下可以忽略。