GitLab Git Workshop
议程
- Git简史
- GitLab预排
- 配置环境
- 车间
Git的介绍
- 分布式版本控制
- 不依赖于连接到中央服务器
- 完整历史的许多副本
- 强大的分支和合并
- 适应几乎任何工作流程
- 快速、可靠、稳定的文件格式
的帮助!
当你陷入困境时,使用你可以支配的工具。
- 使用“
Git帮助<命令>
'命令 - 使用谷歌
- 阅读文档https://git-scm.com
GitLab预排
配置环境
- Windows:安装Git for Windows
- Mac:输入'
git
在终端应用程序中。
如果没有安装,它将提示您安装它。
- Debian:“
Sudo apt-get install git-all
“或者红帽子”Sudo yum安装git-all
'
Git车间
概述
- 配置Git
- 配置SSH密钥
- 创建一个项目
- 提交
- 特性分支
- 合并请求
- 反馈与协作
配置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
创建一个项目
- 在您的用户名称空间中创建一个项目
- 选择从“任何回购URL”导入并使用https://gitlab.com/gitlab-org/training-examples.git
- 创建一个'
发展
或'工作空间
'目录。 - 克隆'
训练样例
”项目
命令
mkdir ~ /发展cd ~ /发展或者,mkdir ~ /工作区cd ~ /工作区Git克隆git@gitlab.example.com:<用户名>/training-examples.gitcd训练样例
Git的概念
无路径的文件
Git之前没有被告知要跟踪的新文件。
工作区域
已修改但未提交的文件。
暂存区域
已被标记为下次提交的修改文件。
提交
- 编辑的
edit_this_file.rb
“在”训练样例
' - 将其列为已更改的文件(工作区域)
- 查看差异
- 阶段文件
- 提交
- 将提交推到远程
- 查看git日志
命令
#编辑“edit_this_file.rb”git状态git diffGit添加<文件>git commit -m '我的改动'Git push origin mastergit日志
特性分支
- 为团队提供高效的并行工作流
- 在一个分支中开发每个特性
- 保持更改隔离
- 考虑1对1的问题链接
- 频繁地向服务器推送分支
- 提示:这是对正在进行的代码的廉价备份
特性分支
- 创建一个名为“squash_some_bugs”的新功能分支
- 编辑的
bugs.rb
然后把所有的虫子都清除掉。 - 提交
- 推
命令
Git checkout -b squash_some_bugs#编辑bugs.rbgit状态Git添加bug .rbgit commit -m '修复一些有bug的代码'Git推送源码squash_some_bugs
合并请求
- 当你需要反馈时,创建一个合并请求
- 目标是“默认”分支(通常是master)
- 指定或提到你想评价的人
- 如果是在制品,在标题上加上“在制品”
- 接受时,总是删除分支
- 任何人都可以发表评论,而不仅仅是受让人
- 将修正推到同一个分支
合并请求
创建第一个合并请求
- 使用活动提要中的蓝色按钮
- 查看diff(更改)并留下评论
- 向同一个分支推送一个新的提交
- 再次检查更改并注意更新
反馈与协作
- 合并请求是反馈和协作的时间
- 给予反馈很难
- 尽可能的善良
- 收到反馈很难
- 尽可能地接受
- 反馈是关于最好的代码,而不是人。你不是你的代码
反馈与协作
查看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
合并冲突
- 经常发生
- 学会解决冲突是很困难的
- 熟能生巧
- 解决冲突后强行推进。小心!
合并冲突
- 签出一个新的分支并进行编辑
conflicts.rb
.添加“Line4”和“Line5”。 - 承诺和推动
- 签出主和编辑
conflicts.rb
.在“Line3”下面添加“Line6”和“Line7”。 - 承诺并推动掌握
- 创建一个合并请求
合并冲突
创建合并请求后,您应该注意到存在冲突。通过调整基地来解决局部冲突。
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