当前位置:   article > 正文

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

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

参考文章

使用一个大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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/661644
推荐阅读
相关标签
  

闽ICP备14008679号