使用git管理RK3566代码并保留同步功能

本文详细描述了如何在一个大git仓库中管理RockchipAndroid平台的源码,包括清理编译中间文件、处理.git和.gitignore文件、创建和初始化git仓库、同步与原厂代码、以及分支管理的步骤。
摘要由CSDN通过智能技术生成

参考文章

使用一个大git管理整个Android平台源码并且保留repo的同步功能

[RK3588 Android12]使用git管理源码

创建本地仓库

1、进入SDK根目录:
cd rk3566_rk3568

2、清除编译的中间文件
cd u-boot
make distclean

cd …/kernel
make distclean

cd …
make clean

3、RK的软件开发包中包含了很多的git仓库和.gitignore文件,这些会对我们自建的代码仓库有影响,需要先把一些 .git和 .gitignore文件删除,在SDK根目录下创建脚本,rm_git.sh,用于删除SDK中原有的 .git仓库和.gitignore文件,

脚本中不删除以下 .git文件
./.repo/manifests/.git
./.git
./.repo/repo/.git

脚本中不删除以下路径的 .gitignore文件
./.gitignore
./.repo/repo/.gitignore
./u-boot*
./kernel*

编辑脚本
vi rm_git.sh
给脚本执行权限
chmod 777 rm_git.sh
执行脚本
./ rm_git.sh

脚本内容

#!/bin/bash

for filename in `find -L ./  -name '.git' | sort`
do
if [ "$filename" != "./.git" -a "$filename" != 	"./.repo/manifests/.git" \
-a "$filename" != "./.repo/repo/.git" ]; then
	echo "delete $filename"
	rm -rf $filename
fi
done

for filename2 in `find -L ./  -name '.gitignore' | sort`
do
if [[ $filename2 != "./.gitignore" && $filename2 != "./.repo/repo/.gitignore"
&&  $filename2 != ./u-boot* &&  $filename2 != ./kernel* ]]; then
	echo "delete $filename2"
	rm $filename2
fi
done


unset filename
unset filename2

4、将u-boot/.gitignore中的*.elf删除(这只针对rockchip平台)
5、将SDK根目录下的 .git 仓库删除
rm -rf .git
在SDK根目录下创建 .gitignore文件并写入如下内容,#注:/out加/表示只忽略当前目录下的out目录

.repo
/out/
/rockdev/

6、在SDK根目录下创建并初始化git仓库
git init
git add .
git commit -am “首次提交”

7、编译,首次编译会出错
在这里插入图片描述
打开报错的Android.bp文件, 将.git相关内容删除或者注释掉后重新编译
hardware/rockchip/libhwjpeg/Android.bp
hardware/rockchip/libmpimmz/Android.bp

8、编译完后执行git status,将漏掉的文件加入根目录下的 .gitignore,
再次 git status 直到只剩下 .gitignore修改

git add -f .
git commit -am “增加.gitignore过滤文件”

9、传到git服务器上
git remote add origin 服务器地址
git push -u origin master

10、下载编译验证是否正常
cd
mkdir SDK_test
cd SDK_test
git clone 服务器地址

当自己的代码仓库需要和原厂同步时

思路:在上文的仓库的基础上创建一个分支,由于 .repo文件并没有没有删除,执行repo sync后,SDK会重新生成很多.git 和 .gitignore, 执行 rm_git.sh,删除掉新生成的 .git和 .gitignore文件,然后提交,最后合并到主分支,有冲突就解决冲突

创建一个新的分支
git checkout baseline
repo sync
git add -A
git commit -m “xxx”

然后同步更新到主分支:
git checkout master
//将代码合并到主分支
git merge baseline
//解决冲突
……
//提交合并
git commit

  • 29
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值