Git diff hash顺序的问题
今天在打差异包的时候,发现打包失败。原来是拷贝文件失败。
于是,打文件名与文件状态打印出来看,发现添加文件的状态“A”与删除文件状态“M”调转了!
这一度让我以为是Perl传递参数的时候发生了错误。于是纠结在数组引用传递的问题上,同时将代码优化了一下。
后来发现这不是办法,因为实在不对劲。在本地进行若干尝试后,发现,文件在本地的状态与服务器的状态也是相反的。
我用的命令是
git diff-tree HEAD HEAD^ --name-status
于是尝试了将两个Hash码调转,果然,状态和服务器一样了。原来是参照物的问题,而不是Perl引用传递的问题!
git diff-tree HEAD^ HEAD --name-status
第一个Hash树是参数物。