Android|Android Studio + Git(JetBrain全家桶通用)
观察了下身边同事操作git基本上都是用git命令行或者tortoise git。但是在windows下使用命令行得先启动bash,有点麻烦。因此使用Android Studio自带的图形化版本控制工具还是能带来一些便捷性的。当然其他JetBrain系列的IDE如IntelliJ Idea、WebStorm等都通用。0.开启git版本控制
首先先在setting里设置git可执行文件
文章图片
设置git可执行文件 点击test可以测试下,我这是Mac下的路径,windows下的就看自己git安装在哪里了。
同时AS也深度支持GitHub,可以顺便配置下自己GitHub的帐号。
对于本身就是使用git clone下来的项目,git是默认打开的。使用Android Studio拉取项目可以在选取项目界面中选择Check out Project from Version Control。
文章图片
从远程仓库拉取项目
然后选择git或者GitHub,非常方便。
对于还没有开启git控制的项目,可以点击VCS -> Enable Version Control Integration然后选择git
文章图片
开启git版本控制
文章图片
开启git版本控制 这样我们就可以开始选择用Android Studio来进行git操作了。
1.commit/pull/push等基本操作
这些基本操作在任意文件下右键或者点击File下选择git即可:
文章图片
git基本操作
可以说毫无难度。Anotate下面单独说。Show Current Revision是显示当前文件最近的一次修改记录;Compare几个操作数对比差异;Show History和git log的作用相同,显示文件的所有历史修改记录。Revert是把当前修改未commit的内容还原,非常的方便。如果有要pull、push的commit,也会显示在这里面,或者直接点击上方工具栏里的图标更方便。
2.Annotation的妙用
【Android|Android Studio + Git(JetBrain全家桶通用)】点击上面的Annotation,或者在文件的左侧行数上右键点击Annotation,会显示当前文件每一行的最近提交记录,包含时间和提交人以及commit信息。
文章图片
Annotation
有*号的表示是未提交代码。当然我这里是一个个人项目,只有我自己的提交记录。
这个有什么用呢?如果是多人开发项目,意义非常大,可以让你以最快的速度甩锅(开个玩笑- -)。在开发人数非常多的时候,我们不可避免的要经常读别人的代码。当我们看不懂某行代码时就可以第一时间通过Annotation找到提交人,然后问他。如果想看是谁动了自己模块的代码,也是一样的简单。每当测试发出一个crash记录时,立马定位到代码看下Annotation,是不是自己的锅。。。。。。
3.Gerrit push不了的问题解决
有的同学会发现,用studio内置的图形化工具gerrit的仓库push不上去。仔细想一下,提交gerrit仓库的时候我们是这样写的:
git push origin HEAD:refs/for/xxxx
也就是说提交的远程分支上要加一个refs/for,这个也很简单,如下,我们在push的时候把这段加上就可以了,一般改一次就行了。
文章图片
gerrit push加上refs/for 4.Changelist的使用
有时候我们需要在本地修改一些代码便于测试调试,比如数据库是加密的,我们本地需要改成不加密的然后才能用工具调试sqlite数据库。但是这个代码又不能提交到远程仓库上。这样我们每次提交的时候都需要小心翼翼的把这个文件勾掉,或者还原掉,很麻烦。这个时候就轮到Changelist出场了:
文章图片
Changelist
文章图片
创建Changelist
点击下方的Version Control,在Local Changes里选择我们不想提交的文件右键选择Move to Another Changelist, 然后新建一个Changelist,注意左下的Set active不要勾选。没有勾选active的Changelist默认是不会在commit的时候提交的。
然后在我们commit的时候就不会出现这些文件,当然commit的时候也是可以选择其他Changelist来提交这些文件的。
5.结语
JetBrain家做的IDE真的是无比强大,肯定还有些其他功能我没有发现的,大家可以回复告诉我。当然,用git命令行肯定也是必不可少的,目前我处理复杂的git问题还是会使用命令行,普通的pull/push使用IDE自带的图形化工具。最后吐槽一下Mac OS的截图是真的麻烦,截完还要自己去手动命名,真的是不如windows下截图方便。
推荐阅读
- android第三方框架(五)ButterKnife
- Android中的AES加密-下
- 带有Hilt的Android上的依赖注入
- gitlab|gitlab 通过备份还原 admin/runner 500 Internal Server Error
- android|android studio中ndk的使用
- gitlab|Gitlab升级(12.2.1到14.6.4)
- Android事件传递源码分析
- RxJava|RxJava 在Android项目中的使用(一)
- Android7.0|Android7.0 第三方应用无法访问私有库
- 深入理解|深入理解 Android 9.0 Crash 机制(二)