Repo操作及常见问题
Posted sparrowlhl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Repo操作及常见问题相关的知识,希望对你有一定的参考价值。
Repo是Google用Python脚本写的调用git的一个脚本,主要是用来下载、管理android项目的软件仓库。
一、首次配置环境及初始化repo:
1、先配置环境:
mkdir bin //在根目录创建bin目录 cp repo bin/ //前提是存在repo这个文件. 将repo复制到bin目录下 export PATH=$PATH:~/bin //加入环境变量 mkdir work_repo //在根目录创建一个work_repo目录,用于存放项目
2、初始化仓库:
cd work_repo //切换到work_repo目录 repo init -u ssh://XXX -b XXX -m XXX.xml //根据具体项目地址进行初始化
在初始化的过程中,可能出现网址无法访问的情况,则可以进行如下修改:
仍然在work_repo目录下, rm .* rm .repo/ -rf cd .. //切回根目录 vim bin/repo //在repo文件中将访问地址改为最新的https://gitee.com/FlymeGit/repo 修改后,切换目录至work_repo,然后执行上述初始化命令即可。
3、同步代码
repo sync -c --no-tags //首次一般使用该命令同步所有代码(Android整个源码)
若只更新某个模块,则可使用命令:
repo sync -c -d XXX //XXX模块名
二、常见问题:
1、repo sync时可能出现问题,对于已有项目已经编译过,会有很多新生成或修改的文件。如果需要清除这些多的文件以及将所有修改的文件恢复回去,可以运行下述两个命令:
repo forall -c "git reset --hard HEAD" repo forall -c "git clean -df"
但是android下面的out目录需要手动清除:rm -rf out.
在这个基础上,再repo sync一般就不会有问题了。
2、提交代码时,出现权限不足,可能原因:
检查repo配置信息,用户名+邮箱+key等是否存在错误,查看config文件(因有些在命令下显示的是正确的,但是文件中配置的是错误的,可能存在非法字符等)。
3、在本地创建临时分支进行代码的修改,由于其他原因,直接切回了主分支,出现下述问题:
临时分支上的修改也作用于了主分支
产生原因:切换到主分支前,没有在临时分支上提交修改。
此时可使用如下操作:(这样可使得提交历史更清晰整洁)
(1)若本地有修改,则先执行 git stash //保存本地修改 (2)git pull --rebase //更新到修改前 (3)git stash apply //恢复本地修改记录 (4)然后进行正常的git add 、 git commit 提交等操作。即可,验证已通过。
4、这是在我的开发中出现的问题,每个人出现的问题可能不一样,并不一定都适合,算是提供一个思路吧!
5、建议:
对于命令的使用及含义的理解,最好在本地Git-Bash中自己测试验证,这样不但有助于理解,也能验证其正确性,网上的也不一定都正确!
repo只是管理工具。因此除了上传,同步所有代码外,其他的本地各种操作都是git命令!!!
以上是关于Repo操作及常见问题的主要内容,如果未能解决你的问题,请参考以下文章
虚拟化技术——CentOS 7.8 安装部署 KVM 虚拟机及基本操作
linux的centos系统安装MongoDB详细步骤(包括创建用户的各种操作及遇到的问题汇总)