git/gerrit/repo代码仓操作指南

来自个人维基
跳转至: 导航搜索

目录

一、初次使用

这一章的内容只用配置一次,后续使用可跳过。

(一)注册 gerrit账号

注册网址:http://gerrit.xxxx.org:8010/htpaswd/

登陆名务必填入自己名字的全称,密码请随意,密码设定后可 更改

(二)绑定邮箱

注册成功后,打开gerrit:http://gerrit.xxxx.org/,登陆

登陆完成如果发现页面空白,则再点击刷新一下页面 http://gerrit.xxxx.org/

点击右上角 "Anonymous Coward",会弹出一个小框,点击 "settings",此时再点击页面左侧导航栏上的 "Contact Information":

1 往 "Full Name"中填入自己名字的全称,点击"Save Changes"

2 再点击 "Register New Email ...",输入自己的邮箱,如 xxx@vivo.com.cn,输入完毕点击 "Register"

3 登陆自己的邮箱,将会发现一封标题为 "[Gerrit Code Review] Email Verification"的未读邮件,点击其中的确认链接,即可完成邮箱的验证

验证成功后,可以看到 "Contact Information"中 "Preferred Email"一项已经显示为我们刚刚输入的邮箱。

(三)「可选」通知管理员将自己设为仓库owner

这一节为可选内容,如果你是某个仓库的owner,此时可联系管理员进行设定,以便后续进行代码审核等工作。

(四)添加 ssh 公共密钥

再次点击右上角进入 "settings",点击 "SSH Public Keys" -> "Add SSH Public Key"会出来一个输入框

然后,在自己的服务器上运行以下命令,得到已有的 ssh 公共密钥:

$ cat ~/.ssh/id_rsa.pub

将全部内容复制到 "Add SSH Public Key"下方的输入框中,点击 "Add"完成添加

二、检出代码

以检出测试代码为例:

$ repo init -u ssh://username@gerrit.xxxx.org:29418/VivoCode/manifest -m default.xml

  • username换成自己的用户名
更改一下自己的用户名
$ cp .repo/manifest.xml.link .repo/manifest.xml
$ vim .repo/manifest.xml
把 <remote fetch="ssh://username@gerrit.xxxx.org:29418" name="origin"/>中 username换成自己的用户名
  • 注:以上框内步骤为临时使用,后续将不需要这一操作

$ repo sync -j16

三、进阶

有时可能会误提交文件,如password, ssh这种,直接删除是没用的,因为 git的历史记录里还在。

针对这种问题,可以使用 filter-branch命令,来删除相关历史记录。

如:

$git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch *.java' --prune-empty --tag-name-filter cat -- --all #文件
$git filter-branch --force --index-filter 'git rm -r --cached --ignore-unmatch source/' --prune-empty --tag-name-filter cat -- --all #目录

也可以指定分支branch:

$git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch *.java' --prune-empty --tag-name-filter cat -- --branches branch_name

参考:

https://help.github.com/articles/removing-sensitive-data-from-a-repository/

https://www.git-scm.com/docs/git-filter-branch