利用Git工具,实现Android开发版本管理-燚智能硬件开发周教授
觉得有道理? 左侧有“公众号”、“微信号”、“头条号”,随便你想加哪个都行!还不过瘾,直接Call我们吧!
前言
在手机、智能硬件和物联网设备中,需要对Android系统的驱动层、框架层进行大量修改。
不同于APP软件开发,Android系统级软件源代码非常庞大,动辄上10G,还有很多人合作修改。
我们可以自建Git服务器,对Android系统级源码开发做好代码上传和改动管理。
如何分配版本库权限
1. 先由用户提供一个*.pub文件, 可以使用下面方法生成, pubname是用户名.
ssh-keygen -f ~/.ssh/pubname
2. 在上述生成的 ~/.ssh/目录下创建一个config文件,pubname是用户名
3. 将用户生成的pubname.pub 拷贝到gitolite服务器,
scp pubname.pub user@IP
4.切换到gitolite服务器,可以看到gitolite-admin目录,
ssh pub user@IP
5. 将pubname.pub 移动到gitolite-admin/keydir
6. 进入/gitolite-admin/conf目录,使用vim打开gitolite.conf, 如需打开modem的权限,在如下位置,将pubname名字添加就可以.
7. 保存退出后,我们使用git status 查看,有两个文件有改动, 使用下面命令提交修改, 和我们代码的修改方式一样.
- git add gitolite.conf
- git add ../keydir/pubname.pub
-git status
查看是否所有文件都提交暂存区
- git commit -m "add pubname.pub"
8. 将我们的修改上传到服务器.
- git push
9. 如果已经有pub文件,需要打开某个用户的权限,只需要修改/gitolite-admin/conf/gitolite.conf
如何管理gitolite.conf
1. 我们使用vim gitolite.conf进入编辑界面后,发现有很多@TEAM的信息, 这里是为了方便,将用户的一些权限分组
哪些用户具有哪些权限。
2. 在代码的版本库中我们就可以直接使用这个组,而不需要每个人单独再添加.
3. 在代码的版本库中我们看到有RW+ , RW, R字样,这个代表权限,按照下面方式分配
R(只读权限):软件部释放此权限
RW(读写权限): 驱动部工作人员权限
RW+(超级读写权限): 管理员权限,具有纠错上传的能力,即如果驱动部有人错误上传,可使用此权限用户进行回溯上传,如:
branch_name: 分支名字
commit_id: 正常提交的commit id
git reset --hard commit_id
git push -f origin branch_name:branch_name