为什么 git 在存储上的“git show”输出中显示 ++ 和 -- ?

为什么 git 在存储上的“git show”输出中显示 ++ 和 -- ?

如果你要找的东西是储藏室,为什么还要git show使用两个+-符号(即++和)?它看起来像这样:--show

diff --cc test.txt
index fe9fc5a,fe9fc5a..5b776c1
--- a/test.txt
+++ b/test.txt
@@@ -1,2 -1,2 +1,2 @@@
--Hello, world!
--Goodbye, world!
++Hello, universe!
++Goodbye, universe!

只是好奇...


重现:

$ git init 
Initialized empty Git repository in /tmp/test/.git/
$ cat > test.txt <<EOF
Hello, world!
Goodbye, world!
EOF
$ git add test.txt
$ git commit -m 'initial commit'
[master (root-commit) b6ad668] initial commit
 1 file changed, 2 insertions(+)
 create mode 100644 test.txt
$ sed -i 's/world/universe/' test.txt 
$ git stash 
Saved working directory and index state WIP on master: b6ad668 initial commit
HEAD is now at b6ad668 initial commit
$ git show stash@{0}
commit d8b13c608945ffd3c5705a1960f96616b603d134
Merge: b6ad668 58aaf4f
Author: Mitchel Humpherys <[email protected]>
Date:   Wed Jan 30 17:47:02 2013 -0800

    WIP on master: b6ad668 initial commit

diff --cc test.txt
index fe9fc5a,fe9fc5a..5b776c1
--- a/test.txt
+++ b/test.txt
@@@ -1,2 -1,2 +1,2 @@@
--Hello, world!
--Goodbye, world!
++Hello, universe!
++Goodbye, universe!

答案1

diff程序可以显示两个以上文件之间的差异,在这种情况下,会使用多列“+”和“-”。存储区存储了暂存的工作目录更改以及未暂存的更改。生成的差异会为您提供有关两者的信息。

请参阅git help diff“组合差异格式”一节中的 。它将解释每列加号和减号如何显示两个不同文件之间的差异。这里,第一列显示存储时和工作目录之间的差异HEAD,第二列显示索引和工作目录之间的差异。

要查看差异,请修改示例以在进行存储之前暂存其中一项更改,例如:

$ git init
$ # create the file
$ git commit -a -m 'initial commit'
$ # edit the first line of the file
$ git add test.txt
$ # edit the second line of the file
$ git stash
$ git stash show
- Hello, world!
- Goodbye, world!
+ Hello, universe!
 -Goodbye, world!
++Goodbye, universe!

从第一列中,您可以看到自上次提交以来两行都发生了变化,但只有“再见,宇宙”!在索引和工作目录之间发生了变化。

相关内容