本文记录了笔者在使用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