如果我在git repo中单独使用git show
,它会显示一组信息,如提交、diff等。
本页(https://git-scm.com/docs/git-show)只是说:
Shows one or more objects (blobs, trees, tags and commits).
我想这是最新的承诺。还有一些差异(文档页面中没有提到(。
但它到底显示了什么?
这是完整的,相当令人费解的输出。。。
$ git show
commit <sha1 A> (HEAD -> A)
Merge: <sha1 B> <sha1 C>
Author: Snowcrash <my@email>
Date: Sat Jul 14 14:56:02 2018 -0700
with both files
diff --cc 1
index <sha1 D>,<sha1 E>..<sha1 F>
--- a/1
+++ b/1
@@@ -1,5 -1,6 +1,12 @@@
1
++<<<<<<< HEAD
+A
+B
+C
++=======
+ C
+ D
+ E
+
++>>>>>>> master
diff --cc 2
index 0000000,0000000..<sha1 G>
new file mode 100644
--- /dev/null
+++ b/2
@@@ -1,0 -1,0 +1,1 @@@
++2
git show
相当于git show HEAD
,即当前分支中的最新提交(更多信息(。
来源:https://github.com/git/git/commit/9f5258cbb8f8ed2bf86b0078f178a26adc572eb9
正如emlai所写,git show
在默认情况下描述了HEAD
提交。至于它显示了什么关于HEAD
提交,git-show
手册页面描述了输出:
对于提交,它显示日志消息和文本差异。它还以
git diff-tree --cc
生成的特殊格式显示合并提交。
至少对于非合并提交,此输出与git log --cc HEAD~..HEAD
的输出相同。--cc
标志会显示diff。