如何用 Gerrit 提交代码到服务器

2019-02-20 16:59:23 浏览数 (1)

「Gerrit」是一个开源代码审查软件,最开始是用于管理「Android安卓」项目而产生的,所以做安卓开发的同仁应该知道这个工具。


提交代码流程

用法和「Git」类似,如果对Git还不熟悉的话,可以公众号「叉叉敌」回复「git」,可以获得 stormzhang 整理的一份GIT经典资料。


首先本地安装GIT

既然是GIT的,首先是安装,直接在Git-Scm官网下载对应的版本即可。

查询代码状态

通过 status 可以查看有哪些文件是需要添加的。

代码语言:javascript复制
$ git status
HEAD detached at FETCH_HEAD
Changes not staged for commit:
modified: 1.txt

添加代码

找到对应的代码或文件有更新,就可以通过 add 来添加代码带缓存区。

代码语言:javascript复制
$ git add 1.txt # 文件比较多的可以用git add *

这个地方如果遇到 「LF will be replaced by CRLF」这个警告。

代码语言:javascript复制
warning: LF will be replaced by CRLF in src/***.java.

这个告警出现原因是,因为代码是从Unix或者Linux取到的,其结尾的换行符是「LF」,而 windows 是「CRLF」,可以使用以下命令来关掉这个警告;

代码语言:javascript复制
git config core.autocrlf true

提交代码到缓存区

添加后,用 commit 提交到本地的缓存区,

代码语言:javascript复制
$ git commit  # 会弹出一个交互界面,和vi类似
$ git commit -m "comment" # 没有交互
$ git commit --amend # 追加一个修改,对应的changesID不变化

.....
 21 files changed, 8693 insertions( )
 create mode 100644 Android.mk
 create mode 100644 AndroidManifest.xml
 create mode 100644 AndroidTest.xml
.....

提交代码到服务器

commit 是提交到缓存区,而 push 是提交到服务器。

代码语言:javascript复制
$ git push origin HEAD:refs/changes/111 # 提交到已有的 gerrit 上面
$ git push origin HEAD:refs/for/master # 提交到一个新的 gerrit 上面

小结

通过一个简单的文件或代码修改提交,就知道大部分使用方法和 git 一样。只要有部分命令有点出入,不过在实际的上产过程中遇到问题,第一个是多上网查查,第二个是多注意下错误回显会有一个提示或帮助信息,说不定执行一下问题就解决了。


扩展阅读

  1. LF will be replaced by CRLF in git - What is that and is it important? [duplicate]
  2. Git explained: Git Concepts and Workflows
  3. Gerrit explained: Gerrit Concepts and Workflows
代码语言:javascript复制

0 人点赞