Git / GitHub 是什么?有什么用?

嵌入式技术

1335人已加入

描述

Git 和 GitHub 是如今团队协作开发必不可少的技能,且不说程序员,就连很多产品也在学习它们。今天分享一下我自学 Git 和 GitHub 的经验,希望起到一个 导学 的作用,帮助大家抓住重点,节省时间、更高效地自学。

Git / GitHub 是什么?有什么用?

Git 是目前 最主流的 分布式版本控制系统 ,版本控制系统可以帮你保存文件的所有修改记录、并使用 版本号 进行区分。你可以随时浏览历史版本、将改错的文件还原到指定的版本,还可以对比不同版本的文件差异、防止旧版本覆盖新版本等。起到恢复和保护作用。而 分布式 是指每位开发者都能在本地维护自己的代码和修改记录,并且还能和其他人的记录进行同步。

GtiHub 是主流的 代码托管平台 ,可以理解为一个存放和管理代码的 “网盘”,大家可以把自己的代码传上去进行共享和维护,也可以从平台下载代码。

注意不要把二者搞混!

Git 是工具(是抓手),而 GitHub 是平台。两者没有必然的联系,我们也可以用其他工具来向 GitHub 提交代码,也可以用 Git 向其他平台提交代码。

为什么要用 Git / GitHub?

Git 从最开始就是 Linux 之父为了更好地管理 Linux 内核开发而创立的。

试想一下,假如有 100 个人一起来开发大型项目,怎么才能保证大家的代码不重复,又能共享呢?难道把代码放到 U 盘里拷来拷去,或者口口相传说:我今天要改这个文件,其他人都别动?

肯定不行!

所以分布式版本控制系统和代码托管平台出现了。大家可以把项目代码放到代码托管平台上,每个人都从上面下载代码,然后在自己的电脑改代码、维护自己的版本,最后在发布前,把大家不同版本的代码合到一起,再上传到平台就可以了,非常方便高效。

公司为了安全,一般都会有自己的代码托管平台。而 GitHub 呢,是 开源的 ,相当于世界上所有人都是同一家公司的员工,大家都能共享这上面的代码、免费学习和参与知名项目。

Git

为什么要学它?

它们就是为协作开发而生的。因此,大多数公司都在用它们来管理项目。所以只要我们想找工作,就不得不学。

我之前看到一些段子说:程序员入职新公司第一天,不会 git 被开除了。也能反映出来 Git 真的很重要!

什么时候学?

记住两个时间点就够了:

学过至少一门编程语言后

准备开发个人项目前

这样你就可以把之后做的所有项目都放到 Github 去管理,维护自己的项目仓库。

Git / GitHub 学习重点和方法

我把 Git 的学习分为四个阶段:

一、Git 基础

本阶段目标

了解 Git 基本概念和常用命令的作用(理论)

能够使用 Git 命令来管理和提交项目代码,要走一遍完整的流程(实践)

学习方法

推荐《猴子都能懂的 Git 入门教程》。它是免费的,图文并茂、通俗易懂,花 1 小时看完 入门篇 就足够了。

在学习时,大家一定要跟着教程多敲命令 ,要自己走完从新建文件到提交文件的完整流程。以实际操作为主,而不要去背那些命令。因为其实我们是可以用开发工具或者软件来可视化地操作 Git 的、而且哪怕忘了命令也可以查,所以死记硬背没有意义。

分支是 Git 里很重要的概念,大家可以使用 Learning Git Branching 这个在线游戏来学习和理解分支。

猴子都能懂的 Git 入门教程:https://backlog.com/git-tutorial/cn/

Learning Git Branching:https://learngitbranching.js.org/?locale=zh_CN

二、GitHub 基础

首次接触 GitHub 时,你就把它当成一个资源网站,在搜索框里输入你想搜的东西就可以了,不需要任何的教程。

但是如果我们想上传代码到 GitHub、和他人协作,就得好好学习一下了。

目标

熟悉 GitHub 基本操作,并能够使用它来管理代码

了解如何利用 GitHub 搜索和下载项目代码

最重要的。了解 GitHub 协作流程;了解开源,并能向开源项目提交代码

知识点

基本概念

什么是 Git(版本控制系统)

什么是 GitHub(代码托管平台)

Git 和 GitHub 的作用

Git 和 GitHub 的联系与区别

Git 概念

工作区

暂存区(索引)

本地版本库

远程仓库

Git 文件状态

版本

HEAD

分支

Git 的安装

Git 常见配置(git config)

个人信息

修改配置

查看配置

Git 基本操作(开发流程)

初始化仓库(git init)

克隆(git clone)

暂存(git add)

提交(git commit)

推送(git push)

拉取(git fetch)

拉取合并(git pull)

查看状态(git status)

查看历史(git log)

分支操作

创建分支

查看分支

切换分支

删除分支

合并分支(git merge)

知识点

什么是 GitHub?

如何访问 GitHub?

基本概念

主分支

仓库

分支

README

Star

Follow

账户类型(个人 / 组织)

必备操作

公开

私有

搜索仓库 / 代码

创建仓库

Fork 仓库

Watch 仓库

上传本地代码

修改个人信息

GitHub Flow 协作流程

克隆 / Fork 仓库

创建分支

修改代码

发起 Pull Request

Code Review

Merge 分支

删除分支

了解 GitHub Issues

贡献代码流程

学习方法

我认为学 GitHub 最大的难点在哪呢???

难点就是你得先能访问 GitHub!这个我就不多说了,大家自己找方法。

刚开始直接跟着官方的 Hello World 入门教程来实操一遍提交代码的流程就算入门了,估计用不了 20 分钟。

Git

之后有空的话我建议大家阅读下 《GitHub 漫游指南》 ,这是一位大佬总结的经验技巧,能够加深你对 GitHub 的认识。

还可以阅读《开源指北》电子书来了解开源,打开新世界的大门。

Hello World 入门教程:https://docs.github.com/cn/get-started/quickstart/hello-world

《GitHub 漫游指南》:https://github.phodal.com/

开源指北:https://oschina.gitee.io/opensource-guide/

三、Git 进阶

企业开发中,项目可能很大、协作人员很多,就容易出现代码冲突。比如你把我写的代码覆盖了,或者搞丢了一部分。

为了更好地预防和解决这些问题,成为项目管理大师呢,建议大家还是了解下 Git 进阶知识。

有同学说 Git 简单,如果只是能用它来工作的话的确不难。但是 Git 里面是有很多高级用法的,活用和会用有很大的区别。

目标

学习 Git 高级操作,尤其是能够熟练地规避和解决冲突。

了解企业常用的 Git 协作流程、规范、项目管理方法,能独立管理项目。

知识点

高级操作

标签(git tag)

检出(git checkout)

贮藏(git stash)

清理(git clean)

变基(git rebase)

重置(git reset)

还原(git revert)

检索(git grep)

展示差异(git diff)

溯源(git blame)

参考日志(git reflog)

交互式命令行(-i 参数)

预防冲突

解决冲突(重中之重)

配置 SSH

子模块

Git 钩子

提交钩子(pre-commit)

忽略提交(Gitignore)

cherry-pick

分布式工作流程

Git worktree

Git Flow

Git 内部原理

Monorepo

了解其他版本控制系统,和 Git 对比

学习方法

怎么学呢?我建议大家直接看 Git 的官方文档,不能再详细了,跟着文档敲一遍命令,有个印象就够了。

四、GitHub 进阶

如今 GitHub 的能力已经非常强了,除了代码的管理和检索外,它还集成了各种辅助团队开发和运营的功能,建议大家按需了解。

Git

GitHub 更多功能

目标

学习更多 GitHub 功能,从而提升研发效率、更好地管理项目

尝试用心维护和推广自己的 GitHub 项目

知识点

开发

配置 SSH 拉取

GitHub 快捷键

GitHub 命令面板

GitHub Apps

代码安全

协作

GitHub Codespaces

GitHub Discussions

Pull Requests

项目管理

Organizations 组织

GitHub Issues 问题反馈

GitHub Projects 项目管理

Insights 数据分析

贡献者管理

开源协议

DevOps

GitHub Pages 网站托管

Gitpod 代码托管

GitHub Actions

GitHub Packages

GitHub Webhook

Git 私服搭建

GitLab

Gogs

学习方法

和上一个阶段一样,进阶的最好方式就是 阅读官方文档 !GitHub 的文档又新又全、还有中文版、还好懂,简直就是完美的教程,这年头,你想找个国外的、能让人看得懂的文档,真心不容易。

此外,建议多看一些别人分享的 GitHub 技巧,比如我之前分享过的几个隐藏的 GitHub 小操作,在仓库页面按一个 。 键,就能更方便地阅读代码了,还是很实用的。

总之想学好 Git 就要多敲多实践,多用它来管理项目,试着跟别人一起协作开发,慢慢地就熟练了。

面试考点

Git 在面试中的占比一般是很低的,至少我秋招 20 多轮面试中 1 次都没被问到过,所以大家不用刻意去准备。

编辑:黄飞

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分