写点什么

7 个常见的 Git 相关的问题

  • 2019 年 5 月 14 日
  • 本文字数:2130 字

    阅读完需:约 7 分钟

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:4810873

评论 1 条评论

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

这几个棘手的面试常见问题,如何高情商的回答?

架构精进之路

面试 情商 8月日更

你的工作有弹性么?

escray

学习 极客时间 朱赟的技术管理课 8月日更

elaticsearch kibana介绍与安装

Rubble

Vue进阶(十):NPM 管理 node.js 依赖

No Silver Bullet

Vue npm nodejs 8月日更

Go与Redis连接池的那些事儿~

Regan Yue

redis Go 语言 8月日更

Pangaea AI 智能机器人炒币系统开发

获客I3O6O643Z97

量化策略 量化跟单 量化机器人

2021全球开源技术峰会|IoT 时代的开源数据基础设施

EMQ映云科技

开源 IOT Platform IoT emq 开源技术

手撸二叉树之路径总和

HelloWorld杰少

数据结构与算法 8月日更

「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之数据库逆向(十二)

crudapi

Vue crud crudapi quasar 数据库逆向

赛迪发布《2020-2021年中国IT服务市场研究年度报告》,联想位居第一梯队

科技大数据

科技互联网

TrafficStatsRunnable 实用封装

Changing Lin

8月日更

【LeetCode】三数之和Java题解

HQ数字卡

算法 LeetCode 8月日更

Mysql读写锁保姆级图文教程

华为云开发者社区

MySQL 数据 读写锁 读锁 MyLSAM

带你读AI论文:SDMG-R结构化提取—无限版式小票场景应用

华为云开发者社区

语义 多模态 推理模型 SDMG-R 检测文本

让数据库从业者用实力对美国说不!

博文视点Broadview

服务器的升级,不可避免的安全问题

九河云安全

论 Erda 的安全之道

尔达Erda

云原生 安全 企业数字化转型 云平台 开发平台

如何实时打通数据孤岛?Tapdata 创始人唐建法受邀于GOTC深度分享

tapdata

数据库 打通数据孤岛 数据同步 Real Time DaaS GOTC

oeasy教您玩转vim - 6 - # 保存修改

o

十大排序算法--快速排序

Ayue、

排序算法 8月日更

快来看,大数据两地三中心的容灾也可以如此省心!

华为云开发者社区

大数据 数据湖 容灾 华为云MRS 两地三中心

专业好用的数据恢复软件推荐

淋雨

EasyRecovery 文件恢复 硬盘数据恢复

增强自动化测试的8大技巧

禅道项目管理

测试 自动化测试

DAPP智能合约系统源码开发

获客I3O6O643Z97

智能合约 DAPP智能合约交易系统开发

巨头纷纷布局分布式云,一场新的云战争即将打响

浪潮云

云计算

推动数据中心行业的“水电煤”,可视化如何用数据改变传统产业?

一只数据鲸鱼

机房 数据可视化 数字孪生 智能IDC

2021第二届云原生编程挑战赛正式启动,抢先报名!

阿里巴巴云原生

阿里云 Serverless RocketMQ 云原生 dubbo

netty系列之:netty中的Channel详解

程序那些事

Java Netty nio channel 程序那些事

CC挖矿系统源码开发

获客I3O6O643Z97

挖矿 挖矿矿池系统开发案例 fil矿机

只需6步,教你从零开发一个签到小程序

华为云开发者社区

小程序 App 移动 智慧校园 FunctionGraph

Swift 实现获取、展示 Mac 的 WiFi 密码

fuyoufang

ios swift SwiftUI Mac 软件 8月日更

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