本文地址:关于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命令就可以正常的执行了。