1

最近我分析了本地 repo 的提交日志并注意到以下内容,我想知道这里发生了什么。任何人都可以给出答案或指向解释这一点的网站吗?

假设我有以下文件结构:

/path/a.txt  
/path/b.txt  
/path/c.txt  
/path/d.txt  

当我提交它时,我在日志中看到以下内容:

create mode 100644 path/a.txt
create mode 100644 path/b.txt
copy path/{a.txt => b.txt} (100%)
create mode 100644 path/c.txt
copy path/{a.txt => c.txt} (100%)
create mode 100644 path/d.txt
copy path/{a.txt => d.txt} (100%)

所有文件在内容方面都是完全不同的。那么这些大括号{=>}是什么意思呢?

Git 版本:1.7.0.4(不要问我为什么不用最新版本,它是客户端的服务器,我不能只安装最新版本。)

4

1 回答 1

1

花括号只是一个简写形式,因此 Git 不必两次打印完整路径。

因此,copy path/{a.txt => b.txt}只是 的缩写copy path/a.txt => path/b.txt

这些行末尾的百分比告诉您相应的第二个文件与第一个文件的相似程度(在这种情况下,它们完全相同,这就是 Git 认为您复制它们的原因)。

另请注意,这对提交内容没有影响,它只是纯粹为了输出而进行的语义解释。提交的内容始终是所有跟踪文件的精确快照,不保存任何元信息,如移动或复制。

于 2013-08-16T07:26:23.547 回答