使用 Git & Repo 下载代码
客户端安装 Git
安装 git,gitk
网络连接正常的情况下:
$ sudo apt-get install git-core gitk git-gui
不能上网,有.deb安装包的,请执行:
$ sudo dpkg -i XXXX.deb
初次运行 Git 前的配置
配置用户信息
$ git config --global user.name yourname
$ git config --global user.email "youremail"
配置文本编辑器
$ git config --global core.editor vim
详细内容请看Git 安装配置
安装 openssh
上传代码到 gerrit 上,需要安装openssh client,并将本地的 SSH Public Keys 添加到 gerrit 上,gerrit 通过 SSH Public Keys 验证上传权限
安装 openssh client
$ sudo apt-get install openssh-client
检查 ~/.ssh 目录有没有,没有的话用 ssh-keygen 生成。ssh是管理和转换认证的密钥,包括 RSA 和 DSA 两种密钥
生成 rsa 密钥
用下面的命令生成ssh私公钥:
$ ssh-keygen -t rsa -C "youremail"
(最好加上youremail)一路回车,不用输密码,在 ~/.ssh 目录会生成 id_rsa, id_rsa.pub 两个文件
请将 ~/.ssh/id_rsa.pub 文件以邮件附件的形式发给 shu.yin@sim.com
拷贝 ~/.ssh/id_rsa.pub 的内容,在 Gerrit 中添加公钥:
首先登入到 http://192.167.100.232:8080,点击右上角的 sign in,输入用户名,密码。
进入 gerrit 界面之后,点击 admin –》settings(在右上角),选择左侧 SSH Public Keys 选项,添加公钥
公钥添加完成后,测试能否连接到 gerrit 服务器:
$ ssh -p 29418 yourname@192.167.100.232
如果提示 publickey denied,说明生成的 key 有问题,请重新生成,然后重启 ubuntu 机器。
安装 Repo
下载代码
初始化版本库
先在本地建立一个空的工程目录
例:myandroid
$ mkdir myandroid
$ cd myandroid
用 repo init 命令初始化:
用 repo init 来下载 manifest Git 库,具体命令如下:
下载 S100D 通用项目请用下面的分支:
$ repo init -u git@192.167.100.232:platform/manifest.git -b qrd8625_jb --repo-url=git@192.167.100.232:repo.git
下载过程中会出现让你输入姓名和 email,请一定要输入正确的用户名和 email (执行了git config 的话,这个地方会自动出现你的名字和mail)
最后会看到 repo initialized in android 这样的提示,说明本地的版本库已经初始化完毕
同步版本库
使用命令:
$ repo sync
将整个 android 代码同步到本地
同步单个或选定的projects:
$ repo sync project1 project2…
开发步骤
建立个人feature分支,修改代码,解决冲突, 上传分支到 gerrit
基本流程
- 用 repo start branch –all 创建个人分支
- 修改文件
- git add file
- 用 git commit 提交更改
- 用 repo upload 把本地修改的分支上传到 gerrit server
创建个人分支
创建个人分支方法一:(应用所有仓库)
$ repo start yourbranch --all
–all 参数表示应用于所有project, 可以创建出此分支
创建单个project分支
$ repo start yourbranch project1ist1
project1ist1 表示你创建的分支只应用projectlist1项目
创建个人分支方法二:(只适用于当前仓库,不能用 repo upload 上传 git branch 创建的分支名,所以建议大家不要使用这个命令创建分支)
$ git branch yourbranch
分支应用技巧:
查看分支:
$ git branch
可显示当前版本库所有存在的分支,带*号的分支表示当前定位在哪个分支上
切换分支:
$ git checkout yourbranch
提示:swiched to branch 'yourbranch',HEAD已经指向 yourbranch
修改代码
开发人员可以开始修改代码
修改好之后,可以用下面两个命令来查看你修改文件内容的差异:
$ repo status
$ git diff
提交到本地 git 仓库
代码确认修改没问题,可以提交到本地 git 仓库:
$ git add file
file: 需要上传到服务器的文件名,此处也可使用 git-gui 工具来操作
$ git commit -m "注释"
此处的注释一定要添加,撤销修改使用 git reset
上传代码前同步版本库
同步版本库:
$ repo sync
同步版本库中的改动到本地仓库, 如遇到冲突,代码更新失败,到失败的库中做如下操作:
$ git pull --rebase
如有冲突,修改冲突后:
$ git add 冲突文件
$ git commit
$ git rebase --continue
上传代码
使用命令:
$ repo upload
使用命令 repo upload 把本地的分支上传 gerrit 进行 code review, gerrit 系统会自动创建一个 chang-id
如果只修改了某个projectlist下的几个文件,就可以直接对这个project提交:
$ repo upload projectlist
上传成功提示:
*[new branch] yourbranch→refs/for/psh100_414007/yourbranch
说明已经上传到 gerrit 中,等待 code review
如果修改了好几个projectlist,请用下面的命令提交:
$repo upload
弹出 vim 编辑窗口界面,找到要上传仓库的分支名,将前面的 # 删除,按esc键, 输入:wq保存退出,即可提交所有项目
如果上传到gerrit,发现修改的有问题,但又不想创建新的 change-id,可以用如下方式:
保证你本地的分支还是之前checkout的那个分支,修改完成之后用:
$ git commit --amend -m "注释"
$ repo upload
上传成功,该 change-id 会多了一个 patch set
使用 Git & Repo 下载代码的更多相关文章
- 从git上下载代码并导入eclipse
主要分为两步: 1.先从git下载代码到本地git仓库 2.eclipse import导入存在的maven项目
- git clone下载代码
下载master代码git clone http://username:password@git.wondershare.cn/XXX.git 下载指定develop分支代码git clone -b ...
- 使用Git Bash从Git上下载代码到本地以及上传代码到码云Git
前提是在码云上已经新建一个空的项目,可参考:https://www.cnblogs.com/babysbreath/p/9170455.html 1.新建一个目录,存放下载下来的项目,我在D盘新建了一 ...
- 利用gitbush从git上下载代码到本地
1. 在本地新建一个存放代码的文件夹: 2.进入文件夹,右击Git bush here3 3. 出现以下面板: 4. 输入: git init 5.输入:git clone 文件地址链接 成功,在文件 ...
- git clone下载代码,中途断掉怎么办?
问题如下: 解决办法: 1)运行以下命令进行clone $ git clone --recursive https:xxxxxx 2)进入项目根目录,继续下载 $ cd eigen-git-mirro ...
- Git 学习笔记之(一) 使用 git gui 从github上下载代码
背景: 目前一些开源代码均在 GitHub上管理的,包括自己写的代码也可以放在上面进行管理.但问题是,当你换一台电脑,想要将你自己放在 GitHub 上的代码工程下载下来的时候,会遇到各种问题,目前可 ...
- 如何清洗 Git Repo 代码仓库
git prune 如何清洗 Git Repo 代码仓库 在腾讯云上创建您的SQL Cluster>>> » 相信不少团队的代码仓库 Git Repo 变得越来越大. ...
- 【代码管理】GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流
GitHub操作总结 : 总结看不明白就看下面的详细讲解. . 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details ...
- git repo代码部署策略及工具
一般在项目或者产品开发流程中,先是开发人员在本地做好开发及测试,其中可能包含很多用于测试用的目录以及源代码文件,在部署前往往会有一个build过程.web项目最终build产生出优化生产环境下减少ht ...
随机推荐
- 回顾:C++开篇课堂
周三,在刚刚结束矩阵分析的考试之后,面向对象程序设计课正式开始了C++的学习,这次课的重点即是面向对象思想的理解. 梳理一下知识点. C++中函数的默认参数 在函数声明或者在函数定义时,对参数赋初始值 ...
- zepto点透解决思路
首先看几个链接, http://blog.youyo.name/archives/zepto-tap-click-through-research.html youyo的分析 http://softw ...
- kali 下程序卸载方法
ali中主要为2种卸载方法:1.apt2.dpkg 使用apt的方式有:apt-get remove [package]apt-get remove --purge # ------(package ...
- C#一套简单的单例系统
单例基类 public class CSingletonBase<TYPE> { public static TYPE Singleton { get { return m_singlet ...
- 雷林鹏分享:C# 运算符重载
C# 运算符重载 您可以重定义或重载 C# 中内置的运算符.因此,程序员也可以使用用户自定义类型的运算符.重载运算符是具有特殊名称的函数,是通过关键字 operator 后跟运算符的符号来定义的.与其 ...
- 多个 CancellationTokenSource 复合(组合) 或 C# 使用 CancellationTokenSource 终止线程
https://www.cnblogs.com/luohengstudy/p/5623451.html https://www.cnblogs.com/wlzhang/p/4604471.html
- nyoj737石子合并(一)
先得出区间为1和2时的结果.用arr[i][j]记录i,j内的和.dp[i][j]记录i,j区间全加起来的最小花费.那么区间大小为1和2时都是明显的.为3时枚举断点.其中一个区间大小为1也是可行的. ...
- java通过java.net.URL发送http请求调用接口
一般在*.html,*.jsp页面中我们通过使用ajax调用接口,这个是我们通常用的.对于这些接口,大都是本公司写的接口供自己调用,所以直接用ajax就可以.但是,如果是多家公司共同开发一个东西,一个 ...
- ASP.NET的内置对象 —— Request 对象
Request 对象最大的用途在于提交表单信息. (可获取页面间传递的值.客户端的 IP 地址等) 3.2.2 获取页面间传送的值 获取页面传送参数值是 Request 对象最广泛的应用之一. ASP ...
- iOS UI-文本视图(UITextView)
#import "ViewController.h" @interface ViewController ()<UITextViewDelegate> @propert ...