当前位置: 首页 > article >正文

Android源码管理

文章目录

  • 需求及场景
    • 需求
    • 困难疑惑点
  • 源码管理方式及过程
    • 基本仓库
    • 管理方式
  • 常用源码git 命令
    • git init
    • 添加.gitignore
    • git add all
    • git add 文件名称
    • git commit -a -m "提交内容说明"
    • git status
    • git log
    • git reset --hard
    • git clean -fd
    • 实际场景,从一个项目切换到另外一个项目如何做
    • git 相关内容学习推荐
  • 图形化git 工具
    • 工具推荐git-gui
    • 高逼格界面工具推荐
  • 总结


需求及场景

需求

  • 作为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 图形化工具推荐

总结

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


http://www.kler.cn/a/322941.html

相关文章:

  • CentOS 源码安装FFmpeg
  • Electron 沙盒模式与预加载脚本:保障桌面应用安全的关键机制
  • 【大数据学习 | HBASE高级】hbase-phoenix 与二次索引应用
  • transformers 操作篇
  • React Hooks 深度解析与实战
  • MySQL缓存使用率超过80%的解决方法
  • Stable Diffusion绘画 | SDXL模型使用注意事项
  • OpenCV 进行图像分割
  • 鸿蒙开发(NEXT/API 12)【硬件(外设扩展驱动客户端开发)】驱动开发服务
  • Ubuntu系统设置bond双网卡
  • Java如何解决同时出库入库订单号自动获取问题
  • 第17周 第3章Servlet开发应用实践 ---Servlet启动时加载与错误页面设置
  • 上位机通讯汇川Plc3U和5U
  • vue防止数据过滤,污染原数据
  • Unity 的 UI Event System 是一个重要的框架
  • (done) 声音信号处理基础知识(4) (Understanding Audio Signals for ML)
  • 机器学习查漏补缺(4)
  • 基于python+django+vue的旅游景点数据分析系统
  • iOS--RunLoop原理
  • Python 3 字典
  • 尚庭公寓-接口定义
  • 变种水仙花数 - Lily Number
  • 【Python】Flask-Admin:构建强大、灵活的后台管理界面
  • SpringBootWeb响应
  • java Nio的应用
  • Spring Boot入门指南