####来实习公司有一周多了,从熟悉工作环境到业务到参与项目这段时间,真的受益匪浅,get到很多新知识,也发现自己知识储备上的不足,特此开一个专题“实习随笔”来回顾每周的知识点和一些感悟,篇幅受限,只能简单记录,主要还是通过链接形式拓展和补充。本周知识清单:
- Git、GitHub、Stash
- MVP、MVVM模式
- ConstraintLayout布局
- Tools命名空间
- VideoView、SurfaceView、TextureView
- 一些小感悟
1.Git、GitHub、Stash
以前做项目托管代码时,选择的是GitHub开源平台,因为在AndroidStudio中有很好的集成了这一功能,只需要通过点击VCS选项卡下Git的几个命令即可,具体操作详见AS中Git与GitHub的使用入门,所以并没有用过Git命令,但在公司发现大家更喜欢直接在AS终端下手写命令行,所以了解Git以及常用的几个指令还是很有必要的。
a. Git 工作流程:
Workspace(工作区):当前开发位置
git pull
:从远程仓库拉取最新代码到工作区,相当于git fetch
+git merge
git diff
:查看修改但未暂存的文件
Index (暂存区):
git add
:工作区修改的内容提交到暂存区,交由Git管理git status
:查看暂存区文件状态
Repository(本地仓库)
git commit
:将暂存区的内容提交到本地仓库git clone
或者git fetch
:从远程仓库拷贝/拉取代码到本地仓库
Remote(远程仓库)
git push
:将本地仓库的内容提交到远程仓库
b.常用Git指令:
几点强调:
(1)撤销git reset
,与git revert
的区别见图:
可见,git reset是
直接删除指定的commit,git revert
是用一次新的commit来回滚之前的commit。
(2)分支git branch
,关于Git分支那点事儿 以及实战
- master(主分支):用于正式发布
- develop(开发分支):用于日常开发。注意新的分支应基于develop分支,而不是master分支。
- release(预发布分布):用于预发布测试
- hotfix(维护分支):用于线上版本bug修复
(3)合并git merge
,与git rebase
的区别是:git merge
会生成一个新的节点,并将之前的提交分开显示;git rebase
操作不会生成新的节点,而是将两个分支融合成一个线性的提交。如例子: