提前锁票 InfoQ 最具价值感的视频栏目 | InfoQ 大咖说 了解详情
写点什么

7 个常见的 Git 相关的问题

2019 年 5 月 14 日

7个常见的Git相关的问题

Git 是目前最流行的版本控制系统,GitHub 和 GitLab 是当前最流行的代码托管平台,熟练掌握 Git,可以说是程序员的必备技能。我整理了大家普遍关切的 7 个问题,并附上我的理解和回答,希望这样的方式可以让大家对 Git 有更进一步的认识,更好地掌握 Git、GitHub 和 GitLab。


关于 Git

1.怎么花最少的时间从 Git 小白变成 Git 高手?

Git 小白通常会有下面的行为特征:


  • 只会用基本得不能再基本的 Git 命令;

  • 有时候会被 Git 弹出来的一串提示信息吓一大跳;

  • 工作中遇到 Git 问题时,通常心跳加速,束手无策…


想成为真正的 Git 高手,需要熟悉 Git 的概念并掌握 Git 的工作原理。当我们理解了这些,就能更快地掌握 Git 。换句话说,当我们学会了像 Git 一样思考,再加上多动手实践,过不了多久,我们就有能力快速找到所需的 Git 命令,用它们来解决各种版本管理的问题了。


2.checkout 和 reset 太相似,该选哪个?

这两个命令的用法很多又很相似,咱们的教程并不介绍所有用法,而是挑选出最常见的应用场景,教会大家在每种场景中使用哪种命令。并且总结出:对于带文件的方式,“reset” 用来变更暂存区的文件,而 “checkout” 用来变更工作区的文件。


这样安排,既突出实用性,又降低不必要的难度。等大家用熟 Git 后,再带着问题查这两个命令的其他用法也不迟。


关于 GitHub

3、如何在 GitHub 上找到感兴趣的开源项目?**

可能多数人只会在 GitHub 首页的 search 输入框中,通过简单地写几个关键字的方式来找开源项目。其实 GitHub 为大家准备了高级搜索的功能,其中还有不少的讲究。比如:


  • 登录前和登录后查询的结果是有差异的;

  • 搜 Git 仓库的方法和搜代码的方法是不能同时起作用的;

  • 一个 Git 仓库的 readme 在搜索中起到非常大的作用;

  • 还能通过 topic 的方式来搜索 Git 仓库…


当我们学会如何使用高级搜索功能后,可以组合出多种搜索条件,这样会排除掉很多我们不需要的东西,节约不少的时间。我个人在使用 GitHub 高级搜索的时候,还发现某些场景下,即便有了这个功能,有时候还是不能满足我的需求。在那种情况下,我会结合 Google 等搜索工具来帮忙。我们的课程会详尽地讲解高级搜索的功能,让大家能高效地找到可借鉴的开源项目。


4、如何挑选团队协作的工作流?

在 GitHub 之前,我们通常看到团队的代码管理、需求管理、bug 管理和进度管理都是由不同的服务提供的,各个服务之间的互通不是很便捷。而 GitHub 把这些服务都融入到了一起,咱们的课程不妨找一些优秀的开源项目学习一下,看看这些项目的成员在 GitHub 上都是如何高效协作的。


其次,说起研发的工作流,不得不说一说关于分支模型的事。我们的课程会具体分析各类分支模型的特点和应用场景,帮助研发团队选择合适的代码集成的方式,并给大家提供有效的解决方案。


关于 GitLab

5、国内互联网企业为何喜欢 GitLab ?

GitLab 具备下面的几个特征,让大家不得不喜欢它:


  • 有免费的社区版本,而且还能安装并运行在公司局域网里;

  • 提供 DevOps 全生命周期的解决方案,功能很强;

  • 易用性非常好,接口也非常丰富;

  • 与时俱进,持续交付,不断推出新功能;

  • 有明确的产品路线规划,且对外公开…


6、GitLab 上是怎么保证集成分支的质量的?

GitLab 主要通过下面的方式来保证集成分支的质量:


  • 可以把集成分支配置为保护分支,不允许任何人把变更直接 push 到集成分支;

  • 大家在特性分支上做开发,自测通过后向集成分支发起 Merge Request;

  • 在 Merge Request 的环节,有经验的开发人员可以对提交的变更做 review,发表改进的意见,代码变更的作者则会收到 review 的提醒邮件;

  • 在 Merge Request 的环节,还能设置静态检查、编译打包、单元测试等检查机制,如果没有通过所有检查项,则不允许合入到集成分支。


咱们的课程会带大家走一遍整个研发过程质量管理的流程,让大家在实际工作中有能力使用这些功能点。


7、在 GitLab 上怎么开展持续集成 ( CI )?

GitLab 的 CI 分为两类:


  • 采用 GitLab 自带的 CI;

  • 通过 GitLab Webhook 的方式向外部的 CI 服务(比如 Jenkins )发送 Git 仓库变更信息,从而触发 CI。


持续集成和部署(CI/CD)在 GitLab 的开发过程中也发挥了重要作用。采用持续集成和部署使代码审查更有效并缩短了开发周期,让开发人员更快地发现错误并从错误中吸取经验。这也是 GitLab 公司把持续集成和持续部署功能与源代码管理功能集成在一起的原因。


我们的课程会告诉大家如何使用 GitLab 自带的 CI ,带大家见识强大的 Pipeline 流水线 ,并尝试着把应用部署到 AWS 云服务上 。通过这种方式,让大家了解当下流行的且被证明有效的持续集成和持续部署(CI/CD)的实践,以便在工作中快速适应持续集成和持续交付的环境,这样还可以促使大家提升各自 CI/CD 的工具与环境。


学好 Git、GitHub 和 GitLab 三剑客,仿佛乘上了安全且高速的列车,可以让团队更高效地完成研发任务,也可以让个人更顺利地参与协作,何乐而不为呢?


我在这门课里,不光讲简单的 Git 命令使用,还会讲更多 Git 原理性方面的内容,以及 GitHub 和 GitLab。知其然更知其所以然,怎么用这些做代码 review ,做项目管理,怎么去做持续集成,这些都是更高维度的东西,而不仅仅是去学几个工具。


关于 Git 你有什么疑问或想法,欢迎你在下方的留言区和我讨论。


内容选自极客时间玩转Git三剑客专栏


2019 年 5 月 14 日 17:4810698

评论 1 条评论

发布
用户头像
这种文章这么烂也能上?
2019 年 05 月 20 日 21:07
回复
没有更多了
发现更多内容

boltdb源码阅读

行如风

go 数据库 源码剖析

2020出行之变(三):智能交通的星罗棋布

脑极体

农产品区块链溯源平台,区块链追溯系统

135深圳3055源中瑞8032

产品经理训练营之第二章作业(一)

vipyinzhiwei

产品经理训练营

第九周作业&总结

ty

基于Serverless实现静态博客访问统计功能

zFish

Serverless AWS Hugo Pulumi

惊呆了!某东Java大咖的MySQL笔记手册流传出来了,胜过看10本书

Java架构之路

Java 程序员 架构 面试 编程语言

产品经理训练营 - 第二次作业

Jophie

产品经理训练营

精选算法面试-哈希表III

李孟

面试 算法

Logi-KafkaManager开源之路:一站式Kafka集群指标监控与运维管控平台

张亮

Java 大数据 kafka 开源 消息队列

第二周-总结-胡赵凯

hisun胡

产品经理 产品经理训练营

范文写作结构分析之“危险的分工”

JiangX

28天写作

同VLAN不同网段能否ping通

网络技术平台

Serverless应用开发小记

zFish

DevOps AWS IaC #Serverless Terraform

没有女友的建议,不会有这家巨头公司

李忠良

28天写作

阿里巴巴十亿级并发系统设计手册已开源(2021最新版)

比伯

Java 编程 架构 面试 计算机

甲方日常 89

句子

工作 随笔杂谈 日常

产品质量战略

俊毅

【shell命令】关于mac的open命令

程序员架构进阶

工具 Shell 命令行 28天写作

Android硬编解码MediaCodec使用笔记

Changing Lin

android 音视频

2021,你值得看的华为/字节/腾讯/京东/网易/滴滴面经分享

比伯

Java 编程 架构 面试 计算机

给新春一台S,给用户三个S:华为智慧屏的新旅程

脑极体

spring中那些让你爱不释手的代码技巧(续集)

Java架构师迁哥

开发质量提升系列:checklist 投产检查列表(下)

罗小龙

代码质量 28天写作 checklist

项目管理文化建设

Ian哥

28天写作

区块链电子合同平台,区块链电子合同技术方案

135深圳3055源中瑞8032

图解计算机中的数据表示形式

冰河

程序员 计算机 二进制数据

产品思维和意识

让我思考一会儿

在nodejs中创建child process

程序那些事

多线程 事件驱动 nodejs 并发 程序那些事

合肥智慧平安小区建设,平安社区整体解决方案

135深圳3055源中瑞8032

Flink 中极其重要的 Time 与 Window 详细解析(深度好文,建议收藏)

五分钟学大数据

大数据 flink

打造 VUCA 时代的 10 倍速 IT 团队

打造 VUCA 时代的 10 倍速 IT 团队

7个常见的Git相关的问题-InfoQ