当前位置:硬件测评 > Gerrit日常保养记录

Gerrit日常保养记录

  • 发布:2023-09-29 07:24

Gerrit的代码审查工具是个好东西,尤其是与Gitlab和Jenkins对接后,在代码控制方面有着无可比拟的优势。

公司已上线Gerrit系统。日常运维中,用到了很多gerrit命令,这里收集一下:

1。创造与毁灭

(1) 分支列表:
$: git 分支
* master
prepub
产品
(2) 创建分支:
$: git 分支 prepub
3 ) 切换已有分支:
$: git checkout prepub
切换到分支 'prepub'
(4) 创建并切换分支:
$: git checkout -b issues1234
切换到分支 ' issues1234'
(5) 删除分支:
$: gitbranch -d issues1234
删除分支issue1234(原为b904c07)。

2。合并与冲突

(1) 合并之前,必须先切换回要合并的分支。
如下表示issue1234分支合并到master分支
$: git checkout master
$: git merge issues1234
递归进行合并。
README | 1 +
1 个文件已更改,1 个插入(+),0 个删除(-)

当出现冲突时,git会报告哪些文件存在冲突。这时需要在提交之前手动解决冲突。
$:git merge问题1234
自动合并index.html
CONFLICT(内容):index.html中合并冲突
自动合并失败;修复冲突,然后提交结果。

通过git status查看冲突文件。

$:git状态
index.html:需要合并
#在分支master上
#已更改但未更新:
#(使用“git add ...”来更新将提交什么)
#(使用“git checkout -- ...”放弃工作目录中的更改)
#
#未合并:index.html
#
打开index.html,git会标记冲突位置。
<<<<<< HEAD:index.html


=======

>>>>>>>> iss53:index.html
解决冲突后,需要手动标记冲突已解决,类似于svn的resolved。
$: git add index.html
$: git status
# 在分支 master 上
# 已更改但未更新:
# (使用 "git add ..." 来更新要提交的内容)
#(使用“git checkout -- ...”放弃工作目录中的更改)
#
#修改:index.html
#
您现在就可以提交。
$: git commit -m "合并问题1234"
[master e3ece67] 合并问题1234
1 个文件已更改,1 个插入(+),0 个删除(-)

3。管理多个分支
如前所述,git 强烈建议频繁使用分支。在分支数量较多的情况下,我们需要对分支进行很好的管理(一上线就开了13个分支= =)
可以通过-v看到最后一次提交日志。

使用--merged 和--no-merged 检查分支是否已合并。
$: gitbranch --merged
* master
p4popt
$: gitbranch --no-merged
prepub
product
删除时未合并的分支会提示该分支尚未合并。
$:git分支-d产品
警告:删除已合并到
'refs/remotes/s/product'的分支'product',但尚未合并到HEAD。
已删除分支产品(为 301ae4e)。

分支管理流程
一般分支可分为长分支和短分支。
长枝

长期任务
prepub:上线前合并。根据上线列表,从各个分支集中到这个分支,部署统一测试
master:上线后合并,长期保留一个稳定可用的分支用于紧急任务。
项目
难以解决的bug
新功能实验场
重构
长分支往往落后于其他分支。你需要养成一个习惯,及时从其他重要分支进行合并。 ,特别是项目分支。
短枝

临时需要
小bug
分支可视化
Git自带的日志提供了--gragh选项,可以提供字符界面的分支可视化视图。
$:git log --graph --pretty=oneline
| | | * 8f685bd1be3757effe32d6ff37f86bd07dd2b549再次被无情冲走代码
| * | 75a17b4ad610327a9b0e1eecfc6c4bf9cade7359 修改图标
| d537 将 refs/remotes/origin/prepub 合并到 HEAD
| |\
| ' of www.sychzs.cn:projects/search into prepub
| | |\
| pid
| * | | 08201de89834f6fecb195c2b7c3546b5cafccc85 闪现折扣浮层样式
| | |/
| |/|
| c10b78029010 修改图标
| * | ae719fc29cc550321f284323db06a294b97c1398 p4p创意优化
| | * a6d4501e1456589d30ab1a5800b651876629c8ca 修改图标
git 还有很多可以提供可视化分支趋势图的 GUI 工具,比如 gitk、qgit、GitX 等。
远程分支

到目前为止,前面提到的所有概念都是直接在本地操作的,不需要任何网络连接。
而且git本身就是一个分布式代码管理工具(DVCS),所以在分支管理中,有两个概念:本地分支和远程分支。
可以简单理解为,远程分支是别人的本地分支推送到服务器时生成的。例如,master 是最典型的远程分支(默认)。
$:git push origin master
除了master之外,我们还可以随意创建分支,推送到服务器上。
$:git push origin prepub
计数对象:27,完成。
最多使用 2 个线程进行增量压缩。
压缩对象:100% (15/15),完成。
写入对象:100% (15/15),7.30 KiB,完成。
总共 15 个(增量 10),重复使用 0 个(增量 0)
至 support@www.sychzs.cn:projects/search.git
1b95a57..779dbe1 prepub -> prepub
远程分支以 {remote/branch} 形式标识,例如 origin/product。
$:git分支-a
master
p4popt
* prepub
产品
远程/原点/HEAD->原点/master
远程/原点/master
remotes/origin/p4popt
remotes/origin/prepub
remotes/origin/product
需要区分远程分支和本地分支。因此,当从服务器拉取特定分支时,需要指定本地分支名称。 。
$:git分支产品origin/product
设置分支产品以跟踪来自origin的远程分支产品。
对于1.6.2以上的git版本,您可以使用--track选项来简化此过程。这就是为什么直接执行git clone时会自动创建本地master分支。 (其实pull操作相当于fetch+merge。)
$: git checkout --track origin/product
分支产品设置,用于跟踪远程分支refs/remotes/origin/product。
Switched到一个新的分支“产品”
远程分支和本地分支具有松散的结构。您可以将任意远程分支合并到任意本地分支;同样,您可以将任何本地分支推送到任何远程分支。
# 这会弄乱你的仓库!!! $:git push origin master
同步本地远程分支。
$:git fetch origin
删除远程分支。
$:git推送起源:p4popt
至support@www.sychzs.cn:projects/search.git
- [已删除] p4popt
添加:gitcherry-pick和gitrebase
gitcherry-pick 可以选择某个分支中的一个或多个提交进行操作。例如,假设我们有一个名为 v2.0 的稳定版本分支,还有一个开发版本分支 v3.0。我们不能直接合并两个分支,这会在稳定版本中造成混乱,但是我们还想添加一个 v3.0 中的功能,已经转移到 v2.0 中,这里可以使用cherry-pick。

#首先查看v3.0中要合并的commit的commit id
git log
#假设是commit f79b0b1ffe445cab6e531260743fa4e08fb4048b

#切换到v2.0
git check v2.0

#合并提交
gitcherry-pick f79b0b1ffe445cab6e531260743fa4e08fb4048b
git rebase 和 git merge 有点类似,但两者也有区别。例如,您有两个抽屉 A 和 B,它们都装有衣服。现在想把B里的衣服放到A里,git merge就是横冲直撞的那种。拿起B倒入A中,如果满了(冲突),则一起整理;而git rebase很看家,它会从B到A一个一个的添加,而且会按照第一次放进去的时间顺序添加,如果满了,就处理这个,就可以继续添加,或者跳过这一项,或者不再添加,恢复A。因此,merge适合琐碎、简单的合并。对于系统级合并,rebase 更好。


# 合并 b
git rebase b

#处理冲突后继续合并
git rebase --continue

#跳过
git rebase --skip

# 取消合并
git rebase --abort

相关文章