使用Gitlab来review合并代码

本文介绍了如何在GitLab上创建远程仓库,并提供了详细的命令行指令,包括Git全局设置、克隆与拉取代码、解决fatal: refusing to merge unrelated histories错误,以及常见的Git命令。此外,还讲解了如何处理分支合并请求时的冲突。

gitlab是一个开源的git仓库管理软件,并提供web界面,方便管理git仓库。和github很相似,不过github暂时没有开源版本,项目必须托管到github官方网站,不能本地部署。很多公司考虑到安全费用等因素,搭建自己的gitlab服务器。
 

 

GitLab上创建远程库

点击【new project】,进入创建项目界面


 

The repository for this project is empty
If you already have files you can push them using command line instructions below.

Otherwise you can start with adding a README, a LICENSE, or a .gitignore to this project.

You will need to be owner or have the master permission level for the initial push, as the master branch is automatically protected.


如果你没有最新的代码,希望从头开始,下面展示在你希望pull过来的文件夹下Create a new repository

Command line instructions

Git global setup  

设定本机用户名,绑定邮箱,让远程服务器知道机器的身份
git config --global user.name "zhangshan"
git config --global user.email "zhangshan@163.com"

Create a new repository

打开要建立本地库的父目录下,打开git bash,输入命令:

cd  existing_repo          //进入要建立本地库项目的文件夹
git clone http://172.20.110.18:9999/zhangshan/vpnwin.git    //clone 将远程服务器的库关联上当前文件夹
touch README.md          //新建文件提交进远端库里    新建readme文件
git add README.md         //将新的文件添加到git的暂存区
git commit -m "add README"      // 将暂存区的文件提交到某个版本内 保存下来,并加上注释
git push -u origin master         //将本地的更改提交到远程服务器


cd existing_folder       //打开要上传最初代码文件的文件夹,或者直接打开代码文件夹,然后打开git bash
git init         //初始化该文件夹,设置这是一个git文件夹
git remote add origin http://172.20.110.18:9999/zhangshan/vpnwin.git   //添加远端项目库地址,关联上远端项目
git add  .                       //添加该文件夹中所有的文件到git的暂存区
git commit -m "Initial commit"                  //提交所有代码到本机的版本库
git push -u origin master             //将本地的更改提交到远程服务器


cd existing_repo
git remote add origin http://172.20.110.18:9999/zhangshan/vpnwin.git
git push -u origin --all
git push -u origin --tags

命令:git pull origin分支名称

拉取指定分支代码并且合并到当前分支:

注意:

每次使用该命令前,要保证本地工作区是没有任何代码修改的,即需要将本地工作区编辑过的文件添加到暂存区(git add .),或提交到本地仓库中(git commit),才可以使用该命令拉取指定分支的代码合并到当前分支中。

每次在操作完git commit命令后,必须拉取一下master分支代码,保持本地正在开发的代码是最新的,避免后续在提交时冲突过多或覆盖掉他人代码的问题出现。

如果需要拉取master主干分支的代码并与我们的当前分支代码进行合并的话,可以使用该命令

如何去解决fatal: refusing to merge unrelated histories


我们生成一个项目后,与我们自己在github新建的空仓库进行关联,关联后运行git pull时发现报错:

refusing to merge unrelated histories

这是因为远程仓库已经存在代码记录了,并且那部分代码没有和本地仓库进行关联,我们可以使用如下操作允许pull未关联的远程仓库旧代码:

git pull origin master --allow-unrelated-histories

然后我们可以push代码了

git 中clone与pull

git 中clone代码,git不会对比本地和服务器的文件,也就不会有冲突,

确定完全覆盖本地的时候用clone;

不确定会不会有冲突的时候用git pull,将远程服务器的代码download下来


几个常用的git 命令


git log             //查看所有的版本日志
git status          //查看现在暂存区的状况
git diff            //查看现在文件与上一个提交-commit版本的区别
git reset --hard HEAD^ //回到上一个版本
git reset --hard XXXXX //XXX为版本编号,回到某一个版本
git pull origin master //从主分支pull到本地
git push -u origin master //从本地push到主分支
git pull                //pull默认主分支
git push                //push默认主分支

分支合并请求

在一个分支上开发,完毕后往目标分支上去合并,需要提交合并请求

合并可能会有冲突

有冲突时,我们发现合并按钮置灰,右边多了【解决冲突】按钮
点击【解决冲突】,出现【解决冲突】页面,页面可以通过 【使用我们】的 指定使用发起merge request的源分支的代码或者 【使用他们的】指定使用目标分支的代码。或者点击【内嵌编辑】直接通过编辑页面编辑(更通用)。解决完冲突后,点击【提交到源分支】,接着即可点击【合并】按钮。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值