一. Gitlab分支

1. 切换到项目位置。

2. 创建一个项目的一新分支。mike@win10-001 MINGW64 ~/cookbook/cookbook (master)

$ git branch first-branch

3. 切换到新建的分支下。mike@win10-001 MINGW64 ~/cookbook/cookbook (master)

$ git checkout first-branch

Switched to branch 'first-branch'

mike@win10-001 MINGW64 ~/cookbook/cookbook (first-branch)

4. 第2步和第3步可以合并成一步。mike@win10-001 MINGW64 ~/cookbook/cookbook (first-branch)

$ git checkout -b first-branch

5. 改变文件的内容。mike@win10-001 MINGW64 ~/cookbook/cookbook (first-branch)

$ echo "Change" >> README.md

6. 提交这个改变$ git commit -a -m 'Readme changed'

warning: LF will be replaced by CRLF in README.md.

The file will have its original line endings in your working directory.

[first-branch dc7b6d5] Readme changed

1 file changed, 1 insertion(+)

7. 推送分支到gitlab服务器mike@win10-001 MINGW64 ~/cookbook/cookbook (first-branch)

$ git push -u origin first-branch

Counting objects: 3, done.

Writing objects: 100% (3/3), 262 bytes | 131.00 KiB/s, done.

Total 3 (delta 0), reused 0 (delta 0)

remote:

remote: To create a merge request for first-branch, visit:

remote:   http://gitlab.aishangwei.net/root/cookbook/merge_requests/new?merge_request%5Bsource_branch%5D=first-branch

remote:

To gitlab.aishangwei.net:root/cookbook.git

* [new branch]      first-branch -> first-branch

Branch 'first-branch' set up to track remote branch 'first-branch' from 'origin'.

8. 在Gitlab服务器查看我们推送的分支

9. 从以下图可以看到创建的分支first-branch和master分支。

10. 切换到master分支。$ git checkout master

Switched to branch 'master'

Your branch is up to date with 'origin/master'.

11. 合并first-branch分支到master分支。$ git merge first-branch –no-ff

12. 从第11步输出的信息可以看到,给我们一个机会去改变提交的信息。在我们保存和关闭编辑器的时候,这个分支将会合并,具体信息如下.mike@win10-001 MINGW64 ~/cookbook/cookbook (master)

$ git merge first-branch --no-ff

Merge made by the 'recursive' strategy.

README.md | 1 +

1 file changed, 1 insertion(+)

13. 推送改变到Gitlab上的master.mike@win10-001 MINGW64 ~/cookbook/cookbook (master)

$  git push origin master

Counting objects: 1, done.

Writing objects: 100% (1/1), 223 bytes | 223.00 KiB/s, done.

Total 1 (delta 0), reused 0 (delta 0)

To gitlab.aishangwei.net:root/cookbook.git

53ec2ca..5e1ebdd  master –> master

14. 删除所创建的分支。mike@win10-001 MINGW64 ~/cookbook/cookbook (master)

$ git push origin --delete first-branch

To gitlab.aishangwei.net:root/cookbook.git

- [deleted]         first-branch

15. 在gitlab服务器上查看信息如下。

二. 执行rebase操作

当我们长时间的运行在分支上的话,我们有时想要同步master,可以通过合并到master后,再切换到我们所在的分支,Git有一个更好的方式来这个,叫做rebasing。 在rebasing中,相当于把你当前的branch分支合并到master,并同步master状态。不过是一步完成了。

1. 使用终端进入到cookbook项目,并创建一个分支。mike@win10-001 MINGW64 ~/cookbook/cookbook (master)

$ git checkout -b rebase-branch

Switched to a new branch 'rebase-branch'

2. 创建一个新的文件并提交它。mike@win10-001 MINGW64 ~/cookbook/cookbook (rebase-branch)

$ echo "File content" >> another_file.md

mike@win10-001 MINGW64 ~/cookbook/cookbook (rebase-branch)

$ git add .

warning: LF will be replaced by CRLF in another_file.md.

The file will have its original line endings in your working directory.

mike@win10-001 MINGW64 ~/cookbook/cookbook (rebase-branch)

$ git commit -m 'Another commit'

[rebase-branch c20f042] Another commit

1 file changed, 1 insertion(+)

create mode 100644 another_file.md

3. 切换到master分支。mike@win10-001 MINGW64 ~/cookbook/cookbook (rebase-branch)

$ git checkout master

Switched to branch 'master'

Your branch is up to date with 'origin/master'.

4. 假如先前推送过代码分支到Gitlab服务器,再执行rebase,那么在推送时候,可能服务器会报错。为了克服这个问题,可以使用-f参数。$ git push origin rebase-branch –f

5. 在master分支上创建提交。mike@win10-001 MINGW64 ~/cookbook/cookbook (master)

$ echo "1" >> README.md

mike@win10-001 MINGW64 ~/cookbook/cookbook (master)

$ git add .

warning: LF will be replaced by CRLF in README.md.

The file will have its original line endings in your working directory.

mike@win10-001 MINGW64 ~/cookbook/cookbook (master)

$ git commit -m 'Commit in master'

[master acb491e] Commit in master

1 file changed, 1 insertion(+)

6. 切换到rebase-branch 分支mike@win10-001 MINGW64 ~/cookbook/cookbook (rebase-branch)

$ git rebase master

First, rewinding head to replay your work on top of it...

Applying: Another commit

三. 挤压提交信息(Squashing your commits)

在开发的时候可能由于频繁的提交信息,比较零散和片断,比如在提交多少次后,想做一个总结。这时候可以把前面几个合并成一个提交信息。

执行案例:

1. 进入到cookbook项目,并切换到squash-branch分支。mike@win10-001 MINGW64 ~/cookbook/cookbook (rebase-branch)

$ git checkout -b squash-branch

Switched to a new branch 'squash-branch'

2. 在squash-branch分支下创建两个提交 ,并把它两个提交挤压到一起。mike@win10-001 MINGW64 ~/cookbook/cookbook (squash-branch)

$ echo "1" >> README.md

mike@win10-001 MINGW64 ~/cookbook/cookbook (squash-branch)

$ git add .

warning: LF will be replaced by CRLF in README.md.

The file will have its original line endings in your working directory.

mike@win10-001 MINGW64 ~/cookbook/cookbook (squash-branch)

$ git commit -a -m 'wip1'

[squash-branch 4e54db8] wip1

1 file changed, 1 insertion(+)

mike@win10-001 MINGW64 ~/cookbook/cookbook (squash-branch)

$ echo "2" >> README.md

mike@win10-001 MINGW64 ~/cookbook/cookbook (squash-branch)

$ git add .

warning: LF will be replaced by CRLF in README.md.

The file will have its original line endings in your working directory.

mike@win10-001 MINGW64 ~/cookbook/cookbook (squash-branch)

$ git commit -a -m 'wip2'

[squash-branch 5d37a65] wip2

1 file changed, 1 insertion(+)

3. 通过以下命令可以查看我们的提交历史。mike@win10-001 MINGW64 ~/cookbook/cookbook (squash-branch)

$  git log --oneline

5d37a65 (HEAD -> squash-branch) wip2

4e54db8 wip1

f5f7fde (rebase-branch) Another commit

acb491e (master) Commit in master

5e1ebdd (origin/master) Merge branch 'first-branch'

dc7b6d5 (first-branch) Readme changed

53ec2ca Added readme file

4. 把wip1和wip2的提交信息挤压在一个更好的提交信息中,执行以下命令。此时会打开一个编辑器。$ git rebase –i HEAD~2

注解: HEAD~2 代表着我们想挤压最后两个提交。假如你想要挤压最后4个提交,那么使用HEAD~4

原始:

改变后:

5. 第4步编辑保存后,Git会打开另外一个编辑窗口,在这个窗口中,编辑提交信息并保存。会弹出如下画面。

$ git rebase -i HEAD~2

[detached HEAD 48f7dae] Added two number to the readme

Date: Sun Jun 24 17:33:08 2018 +0800

1 file changed, 2 insertions(+)

Successfully rebased and updated refs/heads/squash-branch.

6. push该分支到gitlab服务器。$ git push origin squash-branch

Counting objects: 9, done.

Delta compression using up to 4 threads.

Compressing objects: 100% (5/5), done.

Writing objects: 100% (9/9), 839 bytes | 104.00 KiB/s, done.

Total 9 (delta 0), reused 0 (delta 0)

remote:

remote: To create a merge request for squash-branch, visit:

remote:   http://gitlab.aishangwei.net/root/cookbook/merge_requests/new?merge_request%5Bsource_branch%5D=squash-branch

remote:

To gitlab.aishangwei.net:root/cookbook.git

* [new branch]      squash-branch -> squash-branch

gitlab mr wip 怎么弄成_Gitlab基本管理(二)相关推荐

  1. gitlab mr wip 怎么弄成_GitLab | 为什么我们开源了公司员工手册

    简评:GitLab 是 Github 的竞争对手,这家公司所有的员工都是远程办公,这种工作环境需要极好的文档习惯.他们将自家员工手册 Team Handbook 放在网上,任何人都能看到公司的办事准则 ...

  2. gitlab mr wip 怎么弄成_基于GitLab的工作流程设计

    GitLab 是一个基于 git 的仓库管理程序,也是一个方便软件开发的强大完整应用. GitLab 拥有一个"用户新人友好"的界面,通过图形界面和命令行界面,使你的工作更加具有效 ...

  3. gitlab run成功 但无法访问_gitlab 部署 管理

    目录 1.gitlab基本介绍 2.安装前的准备 3.gitlab安装 4.gitlab管理 gitlab基本介绍 GitLab概述: 是一个利用 Ruby on Rails 开发的开源应用程序,实现 ...

  4. [vue-cli]vue-cli默认是单页面的,那要弄成多页面该怎么办呢

    [vue-cli]vue-cli默认是单页面的,那要弄成多页面该怎么办呢 创建多个app? app =new Vue({}) app2 = new Vue({}) 个人简介 我是歌谣,欢迎和大家一起交 ...

  5. 怎么把ppt弄成链接的形式_视频引流的方法,教你怎么用视频引流日引500

    ​大家好,我是聪少,今天来给大家分享一下视频引流的方法,教你怎么用视频引流实现日引500+的粉丝. 文章内容包含这4个部分: 什么是视频引流? 传统视频平台有哪些? 视频引流的原理? 如何实现通过视频 ...

  6. 有没有能把excel表弄成线上多人填报的办法?

    把Excel表弄成线上多人填报,最省时省力的方法就是使用在线协作的文档,现在普通的本地Office已经无法满足办公人员移动办公的需求,永中优云这款协作办公工具就能将Excel协作分享至社交群,让多个成 ...

  7. pdf文件的处理(弄成小容量大小的文本文件)

    问题的提出: pdf文件大多是扫描书籍后制作成的,容量很大,可我要把它弄成文本文件,这样可以放在手机上,遇到的问题就是怎么转换 问题的解决 1.没有灵丹妙药,就是没有专门的转换工具直接转换,如果有,那 ...

  8. html如何将图片弄成背景,如何用css把图片弄成背景

    用css把图片弄成背景的方法:首先创建一个HTML示例文件:然后在body中添加一些p标签:最后使用css中的background属性将图片设置为背景即可. 本教程操作环境:Windows7系统.cs ...

  9. html文字浮雕效果不起作用,ps浮雕效果 怎么把文字弄成浮雕效果

    PS,即Photoshop的简称,是由Adobe Systems开发和发行的图像处理软件.Photoshop主要处理以像素所构成的数字图像.ps有很多功能,在图像.图形.文字.视频.出版等各方面都有涉 ...

  10. 图片的角如何弄成圆角?

    相信很多小伙伴在生活中更加青睐圆角图片,比起四四方方的图片,圆角图片显得更加温和.但众所周知,无论是手机照片还是我们在网上下载的图片,都以直角的图片为主,如果有圆角的需求,就需要大家利用工具将图片的角 ...

最新文章

  1. Vue 框架-02-事件:点击, 双击事件,鼠标移上事件
  2. 嗯,挺全乎儿的,Spring Boot 多环境配置都在这儿了,你喜欢哪一种呢?
  3. Java中测长函数_Core Java测试题
  4. sudo: apt-get:找不到命令_Linux重复执行历史命令方法详解
  5. ❤『知识集锦』一文搞懂mysql索引!!(建议收藏)
  6. vue生成静态html文件_vue单文件组件,如何生成.html文件
  7. JavaWeb后台知识总结
  8. sklearn之Multiclass 估计器
  9. 大学计算机思维导图_【21计算机考研】改考408+1!上海电力大学翻倍扩招,仍考数据结构!...
  10. java开源对象池,java 对象池 - 差不多先生的个人空间 - OSCHINA - 中文开源技术交流社区...
  11. KML和KMZ 用什么软件打开?
  12. 软件工程——瀑布模型、快速原型模型、增量模型、螺旋模型
  13. 实习商汤,校招华为,我的深度学习之路
  14. linux下重装显卡驱动
  15. sap税码配置_SAP那些事-技巧篇-42-Billing plan预收款税码问题
  16. 关于 JWT、JWS、JWE
  17. 一个叫鲁迅的人,终于从教科书里滚了...
  18. 新品上市!麦当劳中国首款半鸡;明星精酿啤酒品牌VEDETT;和府捞面“小面小酒”华北首店落地...
  19. 【网络间谍篇】剖析美国“棱镜门”事件
  20. SSM电影院购票网站

热门文章

  1. 浏览器关闭百度右侧的图片推荐---简洁就是美
  2. Atitit 提升开发效率 通道化驱动化数据操作与查询 目录 1. xiaoguo 1 1.1. Atitit mybatis 简化开发与提升开发效率法 1 2. Code 1 3. ref 4
  3. Atitit 院系和专业规划 大学里的院系,院一般指的都是学院,比如管理学院、法学院这种,系指的就是院里面的专业,比如中文系、哲学系这种。 中文系、哲学系 土木工程 目录 1. 经济管理学院 2
  4. atitit.插件体系设计总结o73.doc
  5. 袁承兴:【译】Async/Await(一)——多任务
  6. 一封来自华尔街 Quant 的信
  7. 因云而生,阿里云全面进入云原生时代
  8. 阿里云祝顺民:因云而生的云原生网络
  9. 凝结11年技术实力 弹性计算国内首著发布
  10. CMP?MSP?1+1才能大于2