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.mzph.cn/news/880487.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大屏走马灯与echarts图表柱状图饼图开发小结

一、使用ant-design-vue的走马灯(a-carousel)注意事项 <!-- 左边的轮播图片 --><a-carousel :after-change"handleCarouselChange" autoplay class"carousel" :transition"transitionName"><div v-for"(item, index) in it…

论文阅读【时间序列】ModerTCN (ICLR2024)

【时间序列】ModerTCN (ICLR2024) 原文链接&#xff1a;ModernTCN: A Modern Pure Convolution Structure for General Time Series Analysis 代码仓库&#xff1a;ModerTCN 简易版本实现代码可以参考&#xff1a;&#xff08;2024 ICLR&#xff09;ModernTCN&#xff1a;A Mod…

解决hbase和hadoop的log4j依赖冲突的警告

一、运行hbase的发现依赖冲突的警告 这警告不影响使用 二、重命名log4j文件 进入HBase的lib包下&#xff0c;将HBase的log4j文件重命名&#xff0c;改成备份&#xff0c;这样再次运行hbase的时候&#xff0c;就没有依赖冲突了。 三、冲突成功解决

C++模版类实现栈

text.h #ifndef TEXT_H #define TEXT_H#include <stdexcept> // 用于 std::out_of_rangetemplate <typename T> class MyStack { private:T* data; // 指向底层数组的指针int capacity; // 容量int top; // 栈顶索引int size; // 当前元…

基于Hive和Hadoop的图书分析系统

本项目是一个基于大数据技术的图书分析系统&#xff0c;旨在为用户提供全面的图书信息和深入的图书销售及阅读行为分析。系统采用 Hadoop 平台进行大规模数据存储和处理&#xff0c;利用 MapReduce 进行数据分析和处理&#xff0c;通过 Sqoop 实现数据的导入导出&#xff0c;以…

光耦合器在信号传输和隔离中的作用

光耦合器&#xff0c;也称为光隔离器&#xff0c;是电子电路中的关键元件&#xff0c;它结合了两个基本功能&#xff1a;信号传输和电气隔离。它们允许信号在电路的不同部分之间传递&#xff0c;同时保持它们彼此电气隔离。此功能对于保护敏感的低压控制电路免受更高电压、噪声…

群晖套娃:群晖+飞牛fnOS二合一,群晖nas安装飞牛fnOS系统实录(飞牛fnOS初体验,如何挂载网盘视频,轻松实现影视刮削)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 飞牛fnOS 📒📝 什么是飞牛fnOS?📝 准备工作📝 安装飞牛fnOS📝 影视刮削⚓️ 相关链接 ⚓️📖 介绍 📖 最近有一款很火的国产NAS系统吸引了不少用户的注意。你是否曾想过,将这种新兴系统安装到你的群晖设备上,实…

“数字武当”项目荣获2024年“数据要素×”大赛湖北分赛文化旅游赛道一等奖

9月26日&#xff0c;由国家数据局、湖北省人民政府指导的首届湖北省数据要素创新大会暨2024年“数据要素”大赛湖北分赛颁奖仪式在湖北武汉举行。由大势智慧联合武当山文化旅游发展集团有限公司参报的武当山“数字武当”项目&#xff0c;荣获文化旅游赛道一等奖。 据悉&#x…

一次阿里云ECS免费试用实践

必坑指南 域名注册了&#xff0c;但是试用版无法完成ICP认证的流程 外网不能访问&#xff0c;推荐使用香港地区–自己就是坑在了杭州 阿里云的网站界面有点太复杂了&#xff0c;经常找不到自己想要的界面 为什么使用ECS ECS 一个在云端的弹性计算服务器。 可以支持对外公网映…

VBA技术资料MF205:移动工作表时名称重复的处理

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

AIGC: 10 AI转文服务器的搭建过程记录

上图是台风席卷城市&#xff0c;现在企业的服务基本都是混合部署&#xff0c;云计算厂商的机房往往可以提供比较好的保护&#xff0c;一般在地下&#xff0c;扛多少级地震&#xff0c;扛多少级台风&#xff0c;而自建机房&#xff0c;往往写字楼经常停电&#xff0c;网络运营上…

Spring:强制登陆与拦截器

1.只使用session验证 &#xff08;1&#xff09;第一步&#xff1a;用户登陆时存储session ApiOperation("用户登陆") PostMapping("/login") public AppResult login(HttpServletRequest request,RequestParam("username") ApiParam("用…

计算机毕业设计之:基于uni-app的校园活动信息共享系统设计与实现(三端开发,安卓前端+网站前端+网站后端)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

Python学习(3):画散点图和箱线图

1. 散点图&#xff08;matplotlib库&#xff09; 1.1 代码示例 import matplotlib.pyplot as plt# 准备数据 x [1, 2, 3, 4, 5] y [2, 4, 6, 8, 10]# 绘制散点图 plt.scatter(x, y)# 添加标题和标签 plt.title("散点图示例") plt.xlabel("X 轴") plt.y…

BaseCTF2024 web

Web [Week1] HTTP 是什么呀 GET: ?basectf%77%65%31%63%25%30%30%6d%65POST: BaseflgX-Forwarded-For:127.0.0.1Referer: BaseCookie: c00k13i cant eat itUser-Agent: Base有Location跳转, 抓包得到flag: QmFzZUNURntkZGUzZjA0Yy1hMDg5LTQwNGMtOTFjNi01ODZjMzAxMzM3Y2J9Cg…

【数据结构中的哈希】

泛黄的春联还残留在墙上.......................................................................................................... 文章目录 前言 一、【哈希结构的介绍】 1.1【哈希结构的概念】 1.2【哈希冲突】 1.3【哈希函数的设计】 1.4【应对哈希冲突的办法】 一、…

Unity图形用户界面!*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。(万字解析)

Unity 3D GUI 简介 游戏开发过程中&#xff0c;开发人员往往会通过制作大量的图形用户界面&#xff08; Graphical User Interface&#xff0c;GUI &#xff09;来增强游戏与玩家的交互性。 Unity 3D 中的图形系统分为 OnGUI、NGUI、UGUI等&#xff0c;这些类型的图形系统内容…

[大语言模型-论文精读] ACL2024-长尾知识在检索增强型大型语言模型中的作用

ACL2024-长尾知识在检索增强型大型语言模型中的作用 On the Role of Long-tail Knowledge in Retrieval Augmented Large Language Models Authors: Dongyang Li, Junbing Yan, Taolin Zhang, Chengyu Wang, Xiaofeng He, Longtao Huang, Hui Xue, Jun Huang 1.概览 问题解决&…

OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【LMS调测】

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ 持续更新中…… 基本概念 LMS全称为Lite Memory Sanitizer&#xff0c;是一种实时…

建立分支提交代码

git分支 git branch 产看当前分支 git branch -a 查看所有分支 git checkout 分支名 切换分支 git checkout -b 分支名 建立分支&#xff08;仅仅是在本地建立了&#xff0c;并没有关联线上&#xff09; git push --set-upstream origin 分支名 把本地分支推到先线上 gti add …