git-repo相关

只用git命令也能正常拉仓库,上传代码,repo集成了一些功能?

小型项目(例如3个算法(dsp+FPGA),3个bsp,2个上层)需要用git管理代码吗,或者有其他合适的工具吗

kernel级项目属于大型项目

repo是Google开发的用于管理Android版本库的一个工具,repo是使用Python对git进行了一定的封装,并不是用于取代git,它简化了对多个Git版本库的管理。用repo管理的版本库都需要使用git命令来进行操作。

repo下载安装
下载地址:https://mirrors.tuna.tsinghua.edu.cn/git/git-repo ,将下载下来的文件命名为repo,放在PATH环境变量所包含的目录下面,例如可以放在/usr/local/bin目录下(后面介绍均以放在/usr/local/bin目录下为例)。
其实下载下来的repo文件只是一个使用Python编写的引导脚本(Google 称之为 Repo launcher,本质上是一个python脚本,可以使用vim打开的),完整的repo(即,repo的主体部分)还没有下载。repo还未安装,需要执行repo init安装。(需要注意repo init需要跟参数的,后面会单独介绍repo init的使用)这里就会涉及到一个问题,repo的主体部分是从哪里下载的?其实查看repo的引导脚本(/usr/local/bin/repo)可以发现,repo主体部分默认从https://gerrit.googlesource.com/git-repo获取(即,执行repo init命令时,不设置--repo-url选项),这个网站需要科学上网才可以访问。
 

1,实际使用中我们会遇到一些具体repo指令不能用

导致你提交不了代码,合并不了分支啥的

1.1repo init

repo init [options] [manifest url]
 

repo init -u manifest_git_path -m manifest_file_name -b branch_name --repo-url=repo_url --no-repo-verify
 

repo init -u ssh://xxx@git.mioffice.cn:29418/platform/manifest.git -b master-u -m default.xml --repo-url=ssh://xxx@git.mioffice.cn:29418/tools/repo.git --depth=1 --no-repo-verify

命令效果:
首先当前目录产生一个.repo目录
然后克隆一份repo的源代码到.repo/repo下,里面存放了其他repo子命令,即repo的主体部分。
接着从manifest_git_path仓库地址clone清单库到.repo/manifests和.repo/manifests.git目录。
同时.repo目录下还包括manifest仓库(清单库)内容

常用选项:

-u:指定Manifest库的Git访问路径。唯一必不可少的选项
-m:指定要使用的Manifest文件。不指定的话,默认为default.xml文件
-b:指定要使用Manifest仓库中的某个特定分支(例如手机仓库很大,你可以单独拉kernel下某个文件夹的代码)
--repo-url:指定repo的远端repoGit库的访问路径。
--no-repo-verify:指定不要验证repo源码。
--mirror:创建远程存储库的副本,而不是客户端工作目录。该选项用于创建版本库镜像。使用该选项则在下一步repo sync同步时,本地按照源的版本库组织方式进行组织,否则会按照 manifest.xml 指定的方式重新组织并检出到本地

执行repo init命令之后,会在当前目录创建一个.repo文件夹。manifests      manifest仓库(清单库)内容,即repo init-u选项对应的仓库。manifest文件是用XML文件的格式记录了本项目依赖的各个Git仓库的名称、地址,以及分支等信息。

1.2repo sync

repo init后就可以拉代码了,repo sync -j6 -d -c --no-tag会将整个项目下载下来,也可以单独下载某个文件夹的

命令为下载的整个manifest的所有仓库都创建分支,例如 ”repo start k8 --all“,会每一个仓库都会创建k8这个分支

1.3 repo upload失败怎么办

出问题先用git push救急

执行命令: git remote -v,查看这个patch对应的仓名:

使用git push提交到gerrit,将patch对应的仓名中的git改成gerrit.pt

而"HEAD:refs/for/"后面对应的"bsp-qcom-s"是分支名,需要根据具体的项目来定

例子:git push ssh://cuibinbin@gerrit.pt.mioffice.cn:29418/platform/vendor/qcom-proprietary/mm-camerasdk HEAD:refs/for/bsp-qcom-s

repo init出问题   可以添加 --no-repo-verify

使用repo upload需要搭建gerrit环境,并且在manifest文件remote元素中添加review属性,使用 git rebase -i,然后再运行 repo upload

repo就这几个命令常用

2,git

git常用命令    等再搜索几篇文章的

2.1 git  pull出错

git branch -a   或者  git branch -a  找到  远程主分支

git reset --hard miui/master-u-qcom     和远程主分支同步    

git pull

参考链接:

1,【精选】git repo工具详细使用教程——彻底学会Android repo的使用_repo教程-CSDN博客

(很详细)

2,【精选】repo入门和基本用法_repo start_Jason_Lee155的博客-CSDN博客

3,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值