Gerrit常见命令及最佳实践

2020-07-10 16:20:34 浏览数 (1)

概述

本文记录了笔者在使用Gerrit(一种免费、开放源代码的代码审查软件)过程中的一些微小的经验,在这里做个简单的分享。

克隆工程

代码语言:javascript复制
git clone ssh://tusi@xx.xx.cn:29428/project-name

如果使用了Git代理,请将xx.xx.cn:29428换成代理后的ip:port

代码语言:javascript复制
git clone ssh://tusi@ip:port/project-name

创建develop分支

一般我们不会将代码直接提交到master分支,而是会选择在develop分支进行开发

代码语言:javascript复制
git checkout -b develop origin/develop

添加到暂存区

修改代码后,将所修改的代码从工作区添加到暂存区

代码语言:javascript复制
// 添加所有文件到暂存区
git add .
// 添加某目录或文件到暂存区
git add src

提交改动

将暂存区内容提交到版本库

代码语言:javascript复制
git commit -m '测试commit'

推送到远程分支

代码语言:javascript复制
git push origin HEAD:refs/for/develop

常见报错

missing Change-Id in commit message footer

先执行这两条命令,命令中的信息改成自己的

代码语言:javascript复制
gitdir=$(git rev-parse --git-dir); scp -p -P 80 tusi@ip:hooks/commit-msg ${gitdir}/hooks/
git commit --amend

再次push`

Gerrit merge conflict

1. 在Gerrit上abandon这次push

2. 软回滚

代码语言:javascript复制
git reset --soft origin/master

3. pull代码

代码语言:javascript复制
git pull

4. 再次commit, push

最佳实践

git status检查仓库状态

一个很好的习惯,add, commit, push等操作前后都可以用git status检查下,有助于理解Git的原理。

代码语言:javascript复制
git status

hotfix合入master

代码语言:javascript复制
git merge origin/hotfix/20190909
git push origin HEAD:refs/for/master

强制与远程分支同步

慎重操作!!!会覆盖掉本地代码!

代码语言:javascript复制
git reset --hard origin/develop

git add 后想撤销

不小心添加了文件到暂存区?使用以下命令:

代码语言:javascript复制
git checkout -- src/main.js

git commit 后想回退

代码语言:javascript复制
// 不小心commit了1次
git reset --soft HEAD^
// 不小心commit了2次
git reset --soft HEAD~2

紧急bug来了,临时保存feature代码

1. 先保存代码

代码语言:javascript复制
git stash

2. 检查确认下

代码语言:javascript复制
git stash list

3. 切换分支去修复bug

4. 修复完毕,切回feature分支,释出stash代码接着干

代码语言:javascript复制
git stash pop

0 人点赞