Android源码管理


需求及场景

需求

  • 作为Framework、底层开发工程师,日常工作中普通用户情况下,如何管理Android平台源码;
  • 日常开发提交源码,如何清晰查看Android提交记录,方便check 修改的内容

困难疑惑点

  • 以前是服务端、应用端工程师,转做系统在接触几百个G的系统源码过程中,代码管理有点压力了,每次命令 比如 git status
    没那么快;编译一次编译文件很多,源码如何进行git管理不清楚
  • 开发过程中,不像服务器、应用端、前端面向的是windows/mac 系统,进行IDEA桌面开发,git
    都有自己的客户端直接操作,或者直接命令。 但是系统底层开发过程中,入口通过SSH连接的一个窗口,源码管理更加懵了,要怎么搞、全部命令来查看修改内容、merge 内容也不太方便。

源码管理方式及过程

这里暂不讨论SVN了,毕竟git 用的多且方便,这里介绍一种管理方式,自己比较常用的方式

基本仓库

代码有一个基本仓库、公共仓库一说,不同项目的所有一致性修改作为一个基本仓库。日常工作中一套代码会有大几十个客户或者上百个客户。每个客户都有自己定制的内容,对于非定制的内容 就是一个基本仓库。我们维护的其实就是基本仓库和每个项目定制的修改内容

管理方式

  • 在仓库中创建一个目录,存放多个项目修改的内容
  • 每一个项目单独创建一个目录,放置修改的内容
  • 每次提交项目定制的修改内容,如果是公版修改作为公版修改内容
  • 如果需要切换项目,重置公版到最新的修改,在每个项目文件中,一键copy 修改的内容到指定的目录。这样就实现了切换项目的目的

常用源码git 命令

在上面管理方式中,已经我们自己维护一套代码过程中,基本的git 命令如下。

git init

初始化一个git仓库,会创建一个.git目录,包含该仓库的所有元数据,如暂存区数据等
场景:这个是基础命令,当我们拿到系统源码时候,如果自己搭建git 项目管理,这个应该是第一步。

添加.gitignore

对于生成的编译文件目录、生成的文件目录是不需要添加到git 版本控制中的,比如我自己简单的一个.gitignore

wfc@wfc-X99:~/wfc/Android/sourc_android12/rk_android12.0_sdk$ cat .gitignore 
out/
rockdev/
rockdev
out

git add all

比如,上面步骤后,讲所有文件添加到版本控制中去

git add 文件名称

讲某个文件添加到版本控制中去

git commit -a -m “提交内容说明”

ait add后,所有的文件其实都是缓存状态,或者 修改的文件当前也是出于缓存状态,提交 commit

git status

查看当前仓库(当前分支)的状态,如有哪些文件处于暂存区需要commit。

git log

查看提交记录(当前分支)

wfc@wfc-X99:~/wfc/Android/sourc_android12/rk_android12.0_sdk$ git log
commit d40329de90ee17911fc77d4d59a3972b9f365a0f (HEAD -> master)
Author: itjavawfc@163.com <itjavawfc@163.com>
Date:   Fri Sep 27 22:03:40 2024 +0800

    默认横屏显示功能实现

commit df4abcabb328a44e244ec6b125267aea31870459
Author: itjavawfc@163.com <itjavawfc@163.com>
Date:   Fri Sep 27 09:22:15 2024 +0800

    代码调试

commit 3ed636ed1b22db542891ecabe48cd2dc71dd0d91
Author: itjavawfc@163.com <itjavawfc@163.com>
Date:   Sat Sep 21 00:37:47 2024 +0800

    初始化代码仓库
wfc@wfc-X99:~/wfc/Android/sourc_android12/rk_android12.0_sdk$ 

git reset --hard

重置版本库所有文件到最后一次commit(回退版本,不能回退指定文件,工作区文件也回退,清除暂存区)。

git clean -fd

-f 参数表示“force”,将会强制删除文件和目录。-d 参数表示除了删除文件外还要删除空目录
一旦执行了git reset --hard和git clean -fd,所有未提交的更改都将丢失。在执行这些操作之前,请确保你不需要这些更改。

实际场景,从一个项目切换到另外一个项目如何做

  • git reset --hard 重置到当前版本到最近一次修改
  • git clean -fd 清除当前生成的新文件
  • git status 在执行上两个命令时候已经是clean 最新状态了,git status 确认下当前是否clean 状态
  • git pull 拉取最新代码
  • cd 到 项目目录 ,copy 项目到公版
  • ./build cmd 编译项目

git 相关内容学习推荐

git简明指南
git教程-菜鸟教程
git官网
git分支开发原理
剖析git实现机制

图形化git 工具

为什么要用图形化界面工具,也可以不用,直接git 命令查看。 但频繁麻烦的git 操作,显示结果有的时候不直观,没法一目了然,显示也不友好,功能不强大。

工具推荐git-gui

  • 安装:sudo apt-get install git git-gui
  • 使用:打开终端,在想打开git的目录下运行git gui 即可
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

高逼格界面工具推荐

Git 图形化工具推荐

总结

提升源码管理能力,提升底层开发效率
管理好源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ItJavawfc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值