GitLab Git Workshop


议程

  1. Git简史
  2. GitLab预排
  3. 配置环境
  4. 车间

Git的介绍

https://git-scm.com/about

  • 分布式版本控制
    • 不依赖于连接到中央服务器
    • 完整历史的许多副本
  • 强大的分支和合并
  • 适应几乎任何工作流程
  • 快速、可靠、稳定的文件格式

的帮助!

当你陷入困境时,使用你可以支配的工具。


GitLab预排

适合


配置环境

  • Windows:安装Git for Windows

https://git-for-windows.github.io

  • Mac:输入'git在终端应用程序中。

如果没有安装,它将提示您安装它。

  • Debian:“Sudo apt-get install git-all“或者红帽子”Sudo yum安装git-all

Git车间

概述

  1. 配置Git
  2. 配置SSH密钥
  3. 创建一个项目
  4. 提交
  5. 特性分支
  6. 合并请求
  7. 反馈与协作

配置Git

Git客户端的一次性配置

git配置——全球user.name“你的名字”git配置——全球用户。电子邮件you@example.com

配置SSH密钥

ssh - keygen- trsa- b4096- c“you@computer-name”
#您将被提示输入以下信息。按enter键接受默认值。默认值显示在括号中。生成rsa公私钥对。输入文件哪把钥匙能救/用户/你/ . ssh / id_rsa输入密码没有密码再次输入相同的密码:您的身份证明已被保存/用户/你/ . ssh / id_rsa。已保存公钥/你/ . ssh / id_rsa . pub /用户。密钥指纹为:39: fc: ce: 94: f4:09:13:95:64:9a: 65: c1:德:05:4d: 01 you@computer-name

复制您的公钥并将其添加到您的GitLab配置文件

~ / . ssh / id_rsa . pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQEL17Ufacg8cDhlQMS5NhV8z3GHZdhCrZbl4gz you@example.com

创建一个项目


命令

mkdir ~ /发展cd ~ /发展或者,mkdir ~ /工作区cd ~ /工作区Git克隆git@gitlab.example.com:<用户名>/training-examples.gitcd训练样例

Git的概念

无路径的文件

Git之前没有被告知要跟踪的新文件。

工作区域

已修改但未提交的文件。

暂存区域

已被标记为下次提交的修改文件。


提交

  1. 编辑的edit_this_file.rb“在”训练样例
  2. 将其列为已更改的文件(工作区域)
  3. 查看差异
  4. 阶段文件
  5. 提交
  6. 将提交推到远程
  7. 查看git日志

命令

#编辑“edit_this_file.rb”git状态git diffGit添加<文件>git commit -m '我的改动'Git push origin mastergit日志

特性分支

  • 为团队提供高效的并行工作流
  • 在一个分支中开发每个特性
  • 保持更改隔离
  • 考虑1对1的问题链接
  • 频繁地向服务器推送分支
    • 提示:这是对正在进行的代码的廉价备份

特性分支

  1. 创建一个名为“squash_some_bugs”的新功能分支
  2. 编辑的bugs.rb然后把所有的虫子都清除掉。
  3. 提交

命令

Git checkout -b squash_some_bugs#编辑bugs.rbgit状态Git添加bug .rbgit commit -m '修复一些有bug的代码'Git推送源码squash_some_bugs

合并请求

  • 当你需要反馈时,创建一个合并请求
  • 目标是“默认”分支(通常是master)
  • 指定或提到你想评价的人
  • 如果是在制品,在标题上加上“在制品”
  • 接受时,总是删除分支
  • 任何人都可以发表评论,而不仅仅是受让人
  • 将修正推到同一个分支

合并请求

创建第一个合并请求

  1. 使用活动提要中的蓝色按钮
  2. 查看diff(更改)并留下评论
  3. 向同一个分支推送一个新的提交
  4. 再次检查更改并注意更新

反馈与协作

  • 合并请求是反馈和协作的时间
  • 给予反馈很难
  • 尽可能的善良
  • 收到反馈很难
  • 尽可能地接受
  • 反馈是关于最好的代码,而不是人。你不是你的代码

反馈与协作

查看Thoughtbot代码审查指南,以获得审查合并请求时应遵循的建议:https://github.com/thoughtbot/guides/tree/master/code-review

请参阅GitLab合并请求的示例:https://gitlab.com/gitlab-org/gitlab-ce/merge_requests


探索GitLab项目

适合

  • 指示板
  • 用户首选项
  • ReadMe, Changelog, License快捷方式
  • 问题
  • 里程碑和标签
  • 管理项目成员
  • 项目设置

标签

  • 用于标记部署和发布
  • 带注释的标记是Git历史中不可更改的一部分
  • 软/轻标签可以随意设置和删除
  • 许多项目将带注释的发布标记与稳定的分支结合在一起
  • 考虑自动设置部署/发布标记

标签

  • 创建一个轻量级标签
  • 创建一个带注释的标记
  • 将标记推到远程存储库

额外的资源

http://git-scm.com/book/en/Git-Basics-Tagging


命令

Git checkout master#轻量级标签Git标签my_lightweight_tag#标注标签git的1.0版本git标签Git push origin—tags

合并冲突

  • 经常发生
  • 学会解决冲突是很困难的
  • 熟能生巧
  • 解决冲突后强行推进。小心!

合并冲突

  1. 签出一个新的分支并进行编辑conflicts.rb.添加“Line4”和“Line5”。
  2. 承诺和推动
  3. 签出主和编辑conflicts.rb.在“Line3”下面添加“Line6”和“Line7”。
  4. 承诺并推动掌握
  5. 创建一个合并请求

合并冲突

创建合并请求后,您应该注意到存在冲突。通过调整基地来解决局部冲突。

Git重基master通过编辑文件来修复冲突。Git添加conflict .rbgit commit -m '修复冲突'Git rebase—继续Git push origin  -f

用南瓜做基底

你可能会得到这样一个提交日志:

修复问题13测试修复修复了测试再次测试这能起作用吗?

使用交互式rebase将这些压缩到有意义的提交中。


用南瓜做基底

压缩我们用于合并冲突步骤的同一个分支上的提交。

Git rebase -i master

在编辑器中,将第一个提交设置为“pick”,并将其他提交设置为“fixup”。


问题吗?

适合

感谢您的辛勤工作!

额外的资源

GitLab文档http://docs.gitlab.comGUI客户端http://git-scm.com/downloads/guis专业git手册http://git-scm.com/bookPlatzi课程https://courses.platzi.com/courses/git-gitlab/代码学校教程http://try.github.io/联络我们subscribers@gitlab.com

Baidu
map