gerrit提交代码

gerrit提交代码

【天下无难事,只要肯放弃】【都是自己理解的有误请指出】...................

一. 为什么写这篇文章

如果只看内容,请跳过这一节

原因主要有以下几个:

  1. 公司用到了,需要了解一下
  2. 一直对git rebase合并和git merge的合并简单学一下
  3. 任性,写一下

二. 过程

由于我的东西都是我自己的理解,怎么使用是按照在公司的使用方式

希望理解不足的还请大家指出

接下来,我将用以下几个点去讲

  • 含有git merge 的提交做法
  • 含有git rebase 的提交做法
  • git merge 和 rebase的简单理解
  • 自我总结

三. 含有git merge 的提交做法

平时自己写代码,提交代码时都是用的下面的流程

- 在master确定的分支操作
# 1.文件add
git add [file]
# 2.文件入库commit
git commit -m"[注释]"
# 3.获取更新的代码
git pull # 若有别人的提交,则会产生一条merge的commit
# 4. 若有冲突则重复 1[add],2[commit],3[pull]
# 5. 若无冲突,推到远程仓库
git push

- 若有多个分支dev 开发 master提交
# 在dev进行上述1[add],2[commit]
# 切换分支需要保证dev的工作空间是干净的
git checkout master
# 更新master分支的代码
git pull
# 合并dev的代码
git merge dev
# 若有冲突按照上述4操作
# 若无冲突,推到远程仓库
git push

四. 含有git rebase 的提交做法

由于使用到了gerrit有code viewer审核代码,所以不能直接推送到远程的master分支

这里我们推送到gerrit中的/refs/head/master分支
新做法:【文章的第二个版本】【2018-09-29】

- 新来了一个需求
# 创建一个开发分支dev,并切换到相应的分支
git checkout -b dev
# 在dev进行开发
# 开发完毕则使用
git pull --rebase origin master
# 若有冲突,则修改每个文件,修改后并如第三点的1[add]
# 如 xxx.txt 冲突,用编辑器进行修改,add进行添加
vi xxx.txt 
git add xxx.txt
# 若还有冲突
git rebase --continue
# 继续修改冲突并add
# 改完冲突后[也就是没有冲突]
# 将修改推入refs/head/master分支,等待code viewer的审查
git push origin head:refs/head/master
# 审查通过后,回到master分支,更新代码
git checkout master
git pull
# 则可见dev推送的代码

老做法:【文章的第一个版本】【2018-09-27】
如今操作如下

- 新来了一个需求
# 创建一个开发分支dev,并切换到相应的分支
git checkout -b dev
# 在dev进行开发
# 开发完毕则,如第三点中的1[add],2[commit]
# 切换至master分支,代码拉取到最新
git checkout master
git pull
# 切换至dev分支,进行代码衍合
git checkout dev
git rebase master
# 若有冲突,则修改每个文件,修改后并如第三点的1[add]
# 如 xxx.txt 冲突,用vi进行修改,add进行添加
vi xxx.txt 
git add xxx.txt
# 若还有冲突
git rebase --continue
# 继续修改冲突并add
# 改完冲突后[也就是没有冲突]
# 将修改推入refs/head/master分支,等待code viewer的审查
git push origin head:refs/head/master
# 审查通过后,回到master分支,更新代码
git checkout master
git pull
# 则可见dev推送的代码

五. git merge 和 rebase的简单理解

  • 在我看来,git merge操作比较暴力直接合并,若无冲突会生成一条新的commit,有冲突则修改过后进行commit,也统一会生成一条新的commit
  • 对于git rebase的操作不会将分支的点点滴滴推进去,若有冲突,解决后直接提交,不会产生一条新的commit
  • git pull 若有本地的commit,而且有其他人的提交代码,那么会形成一个新的commit,推送的时候包含了自己未推送的commit和合并的commmt
  • git pull --rebase 若有本地的commit,而且有其他人的提交代码,需要通过[git add] [git rebase --continue]来解决问题,从而推送时只会包含自己已经commit的版本

六. 自我总结

  • 不太会写东西,只写到了自己用到的东西,自己用到的方式,可能里面还有很多不足
  • 在用到了这些东西之后,发现确实有点意思
  • 保持学习的态度吧
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、 Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态 git c...
    LOVE_晴天阅读 6,813评论 0 10
  • git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git b...
    猿万阅读 10,519评论 1 45
  • 又是一年父亲节, 那悠远的思念还在风中飘行。 他是一颗苍老的大树, 经过岁月细心刻画的年轮。 他让烈日形同虚设, ...
    无所谓hero阅读 3,541评论 0 0
  • “纸上的花是你画的吗”?那走过来的那人问 “不,猪是我杀的” ——我手指着打开的剧本 舞台下面的眼睛们 愣愣地 如...
    李野航阅读 3,017评论 0 0
  • 1.命令输入格式 在mysql环境下,每一次输入命令,都要以分号“;”为结尾,如果忘记输入而直接回车,就会出...
    JRlu阅读 3,157评论 0 0