引言
工作时常用的历史版本对比命令为
git difftool
但是使用这种方式来查看差异的缺点也很明显,每次只能查看一个文件的差异
下面将提供两种方式来进行修改过的全部文件对比,当然使用这两个方法的前提是已经配置好了meld这一对比工具。
方法一

mkdir -p ~/temp_diff/version1 ~/temp_diff/version2 //创建两个存放版本文件的文件夹
git archive 哈希值1 | tar -x -C ~/temp_diff/version1 //导出第一个版本
git archive 哈希值2 | tar -x -C ~/temp_diff/version2 //导出第二个版本
meld ~/temp_diff/version1 ~/temp_diff/version2 //使用meld比较两个版本
其中哈希值取前7个字符即可,不过复制粘贴的话也不费事。
以上为Linux环境下的操作,如果想要在Windows环境下进行类似操作,可以用git bash输入以下命令:
mkdir -p "C:/work_file/temp_diff/version1" "C:/work_file/temp_diff/version2"
git archive 哈希值1 | tar -x -C "C:/work_file/temp_diff/version1"
git archive 哈希值2 | tar -x -C "C:/work_file/temp_diff/version2"
meld "C:/work_file/temp_diff/version1" "C:/work_file/temp_diff/version2"
这个方法的优点是能将历史的版本给导出来,包括未进行修改的文件,方便运行工程查看效果。
方法二(这个方法是我同事发现的)

git difftool --dir-diff 哈希值1 哈希值2
在Linux环境下,这个方法是在“/tmp”文件夹下生成一个临时文件,用于存放两个版本间出现修改的文件,当叉掉meld后,暂存文件也会被清除,如果无法清除则使用一下命令:
git config --global difftool.meld.cleanup true
相比于第一个方法,这个方法的优点是输入的命令行较少,且显示出来的界面也很简洁,但无法直接运行这一版本的工程查看效果。
这第二个方法我未在Windows环境下试验过,效果未知,需要的话读者自行试验。

744

被折叠的 条评论
为什么被折叠?



