在用git做项目的版本控制时,经常需要更新某次或某几次修改后代码文件(无论是新增的需求文件还是修复了BUG的原有文件),使用git最方便的做法就是导出差异文件,也就是使用git导出某次commit的文件,或使用git导出某次commit后的文件。

一般在修改完代码后的工作流程是这样的:

1、把新增加的文件使用Git add添加进改动:git add .

2、使用git commit提交改动:git commit -am 'update something'

3、使用git log查看提交的commit id:git log

4、记录下commit id号,比如:f4710c4a32975904b00609f3145c709f31392140

5、使用命令把修改的文件打包导出: 打包某次commit:

 git diff-tree -r --no-commit-id --name-only f4710c4a32975904b00609f3145c709f31392140 | xargs tar -rf xxx_1.1.tar 

使用命令把某次节点后的文件导出: window下:

git diff f4710c4a32975904b00609f3145c709f31392140 HEAD --name-only | xargs tar -rf xxx_1.1.tar

linux下:

sudo git diff f4710c4a32975904b00609f3145c709f31392140 HEAD --name-only | cpio -pvdmu /var/www/git_update/xxx_1.1.tar