如何用 gitlab 做 code review

工程 专栏收录该内容
1 篇文章 0 订阅

首先参考:
git tutorial
git 简易教程(足够日常使用了)–by 廖雪峰
git远程操作 – by 阮一峰

1. git 基础概念

  • workspace / working directory:工作区
    就是你在电脑里能看到的目录
  • index / stage:暂存区
    更改通过git add到了这里
  • repository:版本库
    git commit更改到这里
    (之前三个概念可参照工作区、暂存区 和 版本库
  • remote

git blue picture

branch

2. 常用的 git 命令

本地

git add / rm -<file / directory>
git commit -m "xxxx"

远程

git push origin <远程分支>:<本地分支>

分支

git branch dev
创建分支dev
git branch -d dev
删除分支dev
git checkout dev
切换到dev分支
git checkout -b dev <分支>
创建一个叫dev的新分支,并切换到dev,又等同于

git branch dev
git checkout dev

后面的<分支>是指 以哪个分支为base, 通常设为origin/master

3. code review

利用分支

  • 从origin/master分支分出来一个dev分支:
    git checkout -b dev origin/master
  • 在dev分支上进行一些更改
  • add到本地stage
    git add/rm <file / directory>
  • commit到本地repository
    git commit -m "<notes>"
  • push到远程分支
    git push origin <远程分支>:<本地分支>
  • 在网页中提一个merge request, 估计从dev 到 master

理解git merge 和 git rebase

一般merge分支到远程master的流程

  • 切换到本地master
    git checkout master
  • 把远程库pull到本地的workspace
    git pull origin master
  • 把chi-dev分支merge到本地master
    git merge chi-dev
  • 此时如有冲突, 解决冲突( 可以看 分支与合并基础 ):
    执行 git status 会显示这些文件没有合并(unmerged),这些有冲突的文件里面会添加像下面的冲突标识符:
<<<<<<< HEAD:file.txt
Hello world
=======
Goodbye
>>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086:file.txt

所要做的就是编辑解决冲突(删掉冲突标识符, 改对代码), 等号和7个<之间是HEAD, 等号和7个>之间是 77976da35a11db4580b80ae27e8d65caf5208086

  • 把刚做的这些编辑提交到index
    git add
  • 把这些编辑提交到repository
    git commit
  • 提交到远程版本库
    git push

解决冲突

这个讲的很好:
Resolving a merge conflict from the command line
冲突有两种

  1. 两个人更改了同个文件的同一行
  2. 两个人一个人对文件做了更改,另一个人删掉了文件

如果我需要从origin/master 开始开发,本地的更改暂且不动,如何操作?

  1. 从服务器上获取数据
    git fetch origin
  2. 在远程分支的基础上分化出来一个新分支(如serverfix)
    git checkout -b serverfix origin/master
  3. 在serverfix上继续开发

4. 你会用到的:

  1. 撤销修改
  2. Git-为项目作贡献
  3. Git 分支 - 远程分支
  4. git ssh 如何用: 先在本地产生ssh key:ssh-keygen -t rsa -b 4096 -C “your_email@example.com”;然后在gitlab上profile settings里add key
  5. git ssh 用两个不同的host:1. ssh-keygen -t rsa -C “xx@email.com” 2. ssh-add 3. 到bitbucket上添加public key 4. 在~/.ssh/config 添加配置 5. git clone git@bitbucket.org/xxx 试下
  • 2
    点赞
  • 1
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

2.2 输入和输出 输入和输出是交互式的操作系统的一个重要的组成部分。在 UNIX/Linux 中,采了 以抽象文件为基础的输入/输出系统,减少了系统对硬件的依赖性,简化了输入/输出的操作, 同时又增加了代码的灵活性。但是,由于使了抽象的概念,所以在理解和掌握上有一定 的难度,需要认真的体会。下面,我们就简要介绍一下 UNIX 的文件系统。 2.2.1 UNIX/Linux 文件系统简介 UNIX 的文件系统有如下的特点: l 层次结构 l 对文件数据的一致对待 l 建立与删除文件的能力 l 文件的动态增长 l 文件数据的权限保护 l 把外围设备作为文件看待 文件系统被组织成树状,称为目录树。目录树有一个成为根(root)的节点(记“/”)。 文件系统结构中的每个非树节点都是文件的一个目录(directory),树的叶节点上的文件既 可以是目录,也可以是正规文件(regular files),还可以是特殊设备文件(special device files)。 文件名由路径名(path name)给出,路径名描述了怎样在一个文件系统树中确定一个文件 的位置。路径名是一个分量名序列,各分量名之间“/”隔开。分量是一个字符序列,它 致命一个北唯一的包含在前级(目录)分量中的文件名。一个完整的路径名由一个斜杠字 符开始,并且指明一个文件,这个文件可以从文件系统的根开始,沿着该路径名的后继分
©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值