Unity编辑器扩展——调用Git,在Unity中拿到Git上每次提交Push的Log等信息
Unity编辑器扩展——Git笔记
本人之前做的一个项目中因为根据公司要求APP的版本需要调用Git上每次提交自动生成的那串字符,然后为了方便自动更新版本号,因此弄了两个功能的编辑器扩展,一个是之前已经写过笔记的自定义打包的Unity中编辑器扩展打包apk等 - 哔哩哔哩 (bilibili.com),另一个就是本篇下面会介绍的Unity如何获取Git上的信息。本篇内容主要功能是下图中的这些内容,当然代码并没有做特别多的优化,因此有一些设置需要手动去设置,设置完才能正常使用,否则会报错,这些设置会在每个代码前后说明。

下面先上代码,一共有三个脚本,可以都放到Editor文件夹下。(这边顺便提醒一下初学者,unity中编辑扩展的脚本都需要放到Editor文件夹下,没有这个文件夹就自己创建一个这是有特殊意义的,当然除了放到Editor下,还可以在脚本中通过预编译让他在Editor下运行,例如下面这段代码创建一个asset文件,在最前面添加#if UNITY_DEITOR以及在最后添加#endif)
回到本文主题,先放上第一个核心的脚本,这是利用C#自带的Process类去调用Git的一些"xxx.exe"文件,下面通过下面这个脚本就已经可以拿到git的一些信息甚至一些操作了。
下面是第二个脚本,这个脚本的主要功能就是第一张图中Assets里面的那些功能,例如git pull、git push、commit等等,不过这个脚本中有一个路径需要手动去配置下,找到你Git里面的TortoiseGitProc.exe这个exe文件将这个文件的路径修改上去就行了。
最后一个脚本是获取git上所有commit时的信息,同样的这边有git.exe的路径需要找到你电脑上的位置然后将脚本中的路径修改成你电脑上的路径。
到这里其实所有脚本功能都已经完成了,后面除了需要注意将这几个脚本放入到Editor文件夹中,还需要注意的是使用的工程项目必须是在git bash过的文件夹中的工程,也就是上层文件夹中必须要有.git这个隐藏的文件夹,才能正常使用,否则或提示找不到信息而保存。
如果获取gitlog,需要注意的是这边拿到的信息是你本地commit提交的所有信息,而不是push到远端后的所有信息,因此如果出现Merge的情况,如果操作不当会出现本地提交了,你会发现在unity中会拿到merge的信息,但是用git上的查看日志却看不到merge信息的情况。