关于git命令“git rev-parse --short HEAD”在android studio中使用与配置的个人探究

来源:互联网 发布:java断点续传下载校验 编辑:程序博客网 时间:2024/06/02 01:10

本文地址:关于git命令“git rev-parse --short HEAD”在android studio中使用与配置的个人探究

写在前面

写的比较详细,本人对这方面了解还不够,权当做个记录了。


微信团队的Android热修复框架Tinker里面有这样一行代码:

def gitSha() {    return 'git rev-parse --short HEAD'.execute().text.trim()}
用于获取一个字符串,作为TINKER_ID。


项目直接运行也是跟好多人一样,报错

Error:Execution failed for task ':app:tinkerProcessDebugManifest'.> tinkerId is not set!!!


然后我在sample中,直接写死这个返回值,没有用他这段代码,

一个原因是,嫌麻烦,

还一个就是,不太懂这个代码的意思(对git命令行操作接触不多,害羞脸)。


刚才有博友问到想要用这段代码生成返回值怎么办?


然后我试着理了一下,现在把我了解的跟大家分享一下。

--------------------------------------------我是分享的分割线-----------------------------------

一、配置git环境变量

配置git环境变量不用细说,这是为了保证在任何目录,都可以运行git命令行。


配置完成后,在任何一个目录打开命令行,可以尝试输入git --version 如果显示了版本号,表示咱们环境配置成功了。


二、将项目与git建立关联

我以Tinker中的sample为例,

如果我们之前项目并没有与git建立关联的话,

进入sample所在目录,打开命令行,输入:


,然后我们进入这个sample的目录,


发现多了个.git文件夹,这就表示关联成功了。

(PS:好多人看不到是因为没有显示隐藏文件)


三、studio配置git

打开studio的setting,


配置git路径。

可以点击右侧的test,显示出版本号表示路径没问题。


然后点击Version Control,在Project的右侧VCS上选择Git,保存。

如果前面都没问题的话,

主界面的上方应该就会多出这几个图标。


这时候,我们同步一下Gradle,会发现还是报错。

提示tinkerId 没有设置。

嗯因为我们没有用git提交过代码。


我们随便把项目中一个文件加入版本控制,并且Commit一下。

这时候我们在 下方Version Control的console中可以看到

这里的这个字符串,就将是我们等下获取到的TINKER_ID。


这是我们再Gradle Sync一下,应该就不会报错了。

进入app/build/intermediates/manifests/full/debug目录(我选的是debug模式,你release的话就是release目录了)

打开清单文件,可以看到:


这个正是我们刚才Commit的时候,的那个字符串。


PS:每次提交这个字符串都不同,但对于它具体的含义,希望有知道的大神指教。


至此,这段git命令就可以正常的执行了。

1 0