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命令!!!

猜你喜欢

转载自www.cnblogs.com/sparrowlhl/p/11284266.html