客户端安装 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

基本流程

  1. 用 repo start branch –all 创建个人分支
  2. 修改文件
  3. git add file
  4. 用 git commit 提交更改
  5. 用 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 下载代码的更多相关文章

  1. 从git上下载代码并导入eclipse

    主要分为两步: 1.先从git下载代码到本地git仓库 2.eclipse import导入存在的maven项目

  2. git clone下载代码

    下载master代码git clone http://username:password@git.wondershare.cn/XXX.git 下载指定develop分支代码git clone -b ...

  3. 使用Git Bash从Git上下载代码到本地以及上传代码到码云Git

    前提是在码云上已经新建一个空的项目,可参考:https://www.cnblogs.com/babysbreath/p/9170455.html 1.新建一个目录,存放下载下来的项目,我在D盘新建了一 ...

  4. 利用gitbush从git上下载代码到本地

    1. 在本地新建一个存放代码的文件夹: 2.进入文件夹,右击Git bush here3 3. 出现以下面板: 4. 输入: git init 5.输入:git clone 文件地址链接 成功,在文件 ...

  5. git clone下载代码,中途断掉怎么办?

    问题如下: 解决办法: 1)运行以下命令进行clone $ git clone --recursive https:xxxxxx 2)进入项目根目录,继续下载 $ cd eigen-git-mirro ...

  6. Git 学习笔记之(一) 使用 git gui 从github上下载代码

    背景: 目前一些开源代码均在 GitHub上管理的,包括自己写的代码也可以放在上面进行管理.但问题是,当你换一台电脑,想要将你自己放在 GitHub 上的代码工程下载下来的时候,会遇到各种问题,目前可 ...

  7. 如何清洗 Git Repo 代码仓库

    git prune 如何清洗 Git Repo 代码仓库       在腾讯云上创建您的SQL Cluster>>> »   相信不少团队的代码仓库 Git Repo 变得越来越大. ...

  8. 【代码管理】GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流

    GitHub操作总结 : 总结看不明白就看下面的详细讲解. . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/details ...

  9. git repo代码部署策略及工具

    一般在项目或者产品开发流程中,先是开发人员在本地做好开发及测试,其中可能包含很多用于测试用的目录以及源代码文件,在部署前往往会有一个build过程.web项目最终build产生出优化生产环境下减少ht ...

随机推荐

  1. java的事务类型及定义

    转载: 什么是事务: 首先,说说什么事务.我认为事务,就是一组操作数据库的动作集合. 事务是现代数据库理论中的核心概念之一.如果一组处理步骤或者全部发生或者一步也不执行,我们称该组处理步骤为一个事务. ...

  2. UVa 11400 照明系统设计

    https://vjudge.net/problem/UVA-11400 题意: 有一个照明系统需要用到n种灯,每种灯的电压为V,电源费用K,每个灯泡费用为C,需要该灯的数量为L.注意到,电压相同的灯 ...

  3. selenium-webdriver 简单教程

    ruby环境下selenium/webdriver可以通过selenium-webdriver.gem包进行安装 gem install selenium-webdriver   支持语言及版本有ru ...

  4. django模型的继承

    很多时候,我们都不是从‘一穷二白’开始编写模型的,有时候可以从第三方库中继承,有时候可以从以前的代码中继承,甚至现写一个模型用于被其它模型继承.这样做的好处,我就不赘述了,每个学习Django的人都非 ...

  5. Cglib方法实现动态代理

    除了使用JDK方式产生动态代理外,Java还给我们提供了另外一种产生动态代理的方法,那就是使用cglib. cglib是这样实现动态代理的: · ①.针对类来实现代理 · ②对指定目标类产生一个子类 ...

  6. js 事件相关 事件处理 封装 事件封装 DOM 0 2 3 级事件

    1.绑定 function(element, type, handler){        if (element.addEventListener) {            element.add ...

  7. 雷林鹏分享:C# 集合(Collection)

    C# 集合(Collection) 集合(Collection)类是专门用于数据存储和检索的类.这些类提供了对栈(stack).队列(queue).列表(list)和哈希表(hash table)的支 ...

  8. 4-3 atom订阅源

    部分章节还没有实做练习. 网上购买了安道的Rails指南中文版.联系了这个作者问了一个问题Rails5的翻译问题. try(), 判断是否存在,不存在的话返回nil.例子:pasting @perso ...

  9. qxx 项目总结

    一.账号池功能 1. 右边注释添加格式 private $client; // Jyeoo的接口 2. 将一些配置放到某个配置文件中,然后通过加载配置环境,来获取相关的变量 app()->con ...

  10. Jmeter响应中中文乱码解决办法

    在jmeter的bin目录下有一个jmeter.properties的文件,打开它,搜索sampleresult.default.encoding,把它的注释打开,也就是把最前面的#去掉,改成samp ...