如何确定服务器上的代码是本地哪个提交版本的代码
为了查看服务器上的代码是本地的哪个git版本,将本地提交的commit~git版本号作为标识
获取git的版本号
提交给远端都会有一个 .git 的文件夹;版本号从这个文件夹中读出来的,所以就要用到 fs .
这里会有两种情况
- 本地只有一个分支(master),可直接读取 .git/refs/heads/master 文件,这个里面就是git提交的版本号了。
- 本地存在多个分支(每个分支每次的提交都不会影响到其他分支,即分支的版本号也不一样).
先引用 fs
let fs = require('fs');
再获取当前分支名以便找当前分支的版本号
let gitHEAD = fs.readFileSync('../.git/HEAD', 'utf-8').trim(); // ref: refs/heads/xxxxx xxxxx代表分支名
拿到当前分支的版本号
let ref = gitHEAD.split(': ')[1]; // 路径
let gitVersion = fs.readFileSync('../.git/' + ref, 'utf-8').trim(); // git版本号 defbc1ce76c0bb7105b99e24c75a846d9a2319d5
最后把git版本号拼在打包的文件名后
output: {
path: config.build.assetsRoot,
filename: utils.assetsPath('js/[name].[chunkhash]' + '$' + gitVersion +'.js'), // 以$符号作为分隔符区分 webpack.prod.conf.js
chunkFilename: utils.assetsPath('js/[id].[chunkhash]' + '$' + gitVersion +'.js')
},
最后就可以在服务器上看到,就可以确定服务器上的代码是本地哪个git提交的版本代码