[Android7.1] Android 项目初始化及 Repo 基本用法

Author: Younix
Platform: RK3399
OS: Android 7.1
Kernel: 4.4.126
Version: v2019.06


参考文档:
repo 使用简单手册: http://source.android.com/source/version-control.html
repo 代码工程地址: https://code.google.com/p/git-repo/

安装 repo

参考 https://mirrors.tuna.tsinghua.edu.cn/help/git-repo/

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
chmod +x repo
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'

初始化 Android 工程

# 添加密钥
ssh-agent bash
ssh-add ~/.ssh/qxzn_rsa 

# 配置 git 信息
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
  
# 初始化
# 如果没有 -m 指定 xml, 会使用名为 default 的 xml,
./repo init --repo-url=https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -u ssh://[email protected]/repo/platform/manifest.git -b master -m rk3399_android-7.1.xml

# 同步代码
repo sync

# 将所有子仓库切换到 master 分支
./repo/repo/repo forall -c git checkout master

开发规范

最好请先通读 repo 基本用法,再了解开发规范

个人开发规范

# 务必创建分支开发
repo start 
# 约定:repo start dev-[username]
# 比如:repo start dev-younix

# 在子仓库中进行开发,提交变更
git add 
git commit 
# git push 仓库名 本地分支名:远程分支名
git push origin master:msater

管理员开发规范

参见 RK《REPO 镜像服务器搭建和管理.pdf》

repo 基本用法

同步更新代码

cd rk3399_sdk/
repo sync 
repo sync [project]  # repo sync kernel 

本质是 git fetch --update-head-ok 作用是更新当前分支,并将你的本地修改 rebase 到最近一次更新。

➜  rk3399 .repo/repo/repo branch
   (no branches)
   
# 会显示 no branches 需要使用 如下命令进行初始化

➜  rk3399 .repo/repo/repo start master --all**strong text**
Starting master: 100% (552/552), done.  
➜  rk3399 .repo/repo/repo branch            
*  master                    | in all projects

注意:如果当前分支有本地提交或者与服务器有冲突,或者不是用 repo start 建立

解决冲突

sync 有可能出现提示冲突,并提示使用“git rebase --abort”,“git rebase --continue”,“git rebase --skip”等 3 个命令解决冲突。
如果您知道如何解决冲突,使用如下命令:
a) 手工编辑 conflicts(即提示冲突)的文件,并使用

vim some_comflict_file
git add some_conflict_file

b) 解决所有冲突后,执行

git commit
git rebase --continue

如果不知道如何解决,请先使用如下命令:
a) 退出 rebase 状态

git rebase --abort

b) 手工去相应工程用 git 命令合并。

创建开发分支

# 创建分支
repo start branch_name

# 检查分支是否创建:
repo status

# 查看当前所有工程分支:
repo branch

# git 命令中关于分支的操作:
# 检出新分支
git checkout -b branch_name

# 检出基于远程分支的跟踪分支
git checkout -b branch_name -t repository/remote_branch_name

# 删除分支
git branch -d branch_name
git branch -D branch_name

# 比较分支提交差别,分支名也可以是 HEAD, commitid 等。
git log branch_name1..branch_name2

查看修改

# 查看所有本地工程修改
repo diff

# 查看状态
# “-m”指修改未提交,“--”指不在版本库管理的文件。
repo status

# 查看所有未合并的分支
repo overview

猜你喜欢

转载自blog.csdn.net/dearsq/article/details/96132236