1、从远程服务器上克隆repo库
如下:
git@NEOser:~/repositories/X9Project$ git clone --bare https://mirrors.tuna.tsinghua.edu.cn/git/git-repo
2、创建manifest.git库用来管理所有的git子库
git服务器端:
在git服务器的/home/git/repositories/X9Project目录中添加manifest.git库
git@NEOser:~/repositories/X9Project$ mkdir manifest.git
git@NEOser:~/repositories/X9Project$ cd manifest.git
git@NEOser:~/repositories/X9Project/manifest.git$ git --bare init
在编译机器的客户端:
添加default.xml文件并修改version号,分别上传到master分支和dev分支:
zhaojingrong@root01-PowerEdge-T440:~$ git clone [email protected]:/home/git/repositories/X9Project/manifest.git
zhaojingrong@root01-PowerEdge-T440:~$ cd manifest
如下:
修改manifest.git库master和development分支的default.xml文件,分别上传到manifest.git库master和development分支上
Master分支:
zhaojingrong@root01-PowerEdge-T440:~/manifest $
git clone [email protected]:/home/git/repositories/X9Project/manifest.git
zhaojingrong@root01-PowerEdge-T440:~/manifest $ vim default.xml 如下:
保存,上传到master分支:
zhaojingrong@root01-PowerEdge-T440:~/manifest $ git push origin master
development分支:
保存,上传到development分支:
zhaojingrong@root01-PowerEdge-T440:~/manifest $ git push origin development
其中default.xml文件:
<remote fetch="ssh://[email protected]:/home/git" name="origin"/>
<default remote="origin" revision="master" sync-j="4"/>
<project name="repositories/X9Project/x9.git" path="x9" branch="master"/>
说明:
remote fetch:远程git服务器的地址,即远程git账号的路径
name:是远程git账号的别名,取名为origin
revision:版本号,即可包含的子库指向的代码分支,必须跟branch保持一致
project name:远程git账号下的git库路径
path:下载到本地的路径
3、创建default.xml文件包含的子库并添加代码以及创建对应的master分支和dev分支
git服务器端(以x9和frame/base库为列子):
git@NEOser:~/repositories/X9Project$mkdir x9
git@NEOser:~/repositories/X9Project$ mkdir -p frame/base.git
git@NEOser:~/repositories/X9Project$ cd x9
git@NEOser:~/repositories/X9Project/x9$ git --bare init
git@NEOser:~/repositories/X9Project/x9$ cd ../frame/base.git
git@NEOser:~/repositories/X9Project/x9/frame/base.git$ git --bare init
编译机器客户端:
x9子库:
zhaojingrong@NEOser:~$ git clone [email protected]:/home/git/repositories/X9Project/x9.git
zhaojingrong@NEOser:~$ cd x9
zhaojingrong@NEOser:~/x9$ mv ../GM620S/* ./
zhaojingrong@NEOser:~/x9$ git add ./
zhaojingrong@NEOser:~/x9$ git commit -m "init x9 project"
zhaojingrong@NEOser:~/x9$ git -u origin master
zhaojingrong@NEOser:~/x9$ git push origin master:development
frame/base子库:
zhaojingrong@NEOser:~$ git clone [email protected]:/home/git/repositories/X9Project/frame/base.git
zhaojingrong@NEOser:~$ cd frame/base
zhaojingrong@NEOser:~/frame/base$ mv ../frame/base/* ./
zhaojingrong@NEOser:~/frame/base$ git add ./
zhaojingrong@NEOser:~/frame/base$ git commit -m "init frame/base.git"
zhaojingrong@NEOser:~/frame/base$ git -u origin master
zhaojingrong@NEOser:~/frame/base$ git push origin master:development
其它子库类似处理即可
4、环境变量设置
repo工具客户端环境变量设置:
zhaojingrong@NEOser:~$ mkdir Bin
zhaojingrong@NEOser:~/Bin$ git clone [email protected]:/home/git/repositories/X9Project/git-repo.git
zhaojingrong@NEOser:~/Bin$ vim ~/.bashrc
修改如下:
添加:export PATH=/home/zhaojingrong/Bin/git-repo:$PATH
注意:不是repo文件的路径,而是git-repo文件夹的路径
最后:
需要从供应商或其它路径克隆一个git库,只需要执行以下命令即可:
git clone --bare 远程git库的地址
git clone --bare git://aosp.tuna.tsinghua.edu.cn/android/git-repo
git://aosp.tuna.tsinghua.edu.cn/android/git-repo是远程aosp.tuna.tsinghua.edu.cn服务器上的repo库的地址