本文已参加「新人创作礼」活动,一同敞开创作之路。

Git 和 GitHub 是现在团队协作开发必不可少的技能,且不说程序员,就连许多产品也在学习它们。今日同享一下我自学 Git 和 GitHub 的经历,期望起到一个导学的效果,帮助咱们抓住重点,节省时刻、更高效地自学。

本文纲要:

  • Git(GitHub)是什么?有什么用?
  • 为什么要学?
  • 什么时候学?
  • 要学什么常识?哪些是重点?
  • 怎样学?有哪些办法和资源?
  • 以及面试的时候或许会考什么?

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

Git 是现在最干流的分布式版别控制系统,版别控制系统能够帮你保存文件的所有修正记载、并运用版别号进行区别。你能够随时浏览前史版别、将改错的文件还原到指定的版别,还能够比照不同版别的文件差异、防止旧版别掩盖新版别等。起到康复和保护效果。而分布式是指每位开发者都能在本地保护自己的代码和修正记载,并且还能和其别人的记载进行同步。

GtiHub 是干流的代码保管渠道,能够了解为一个存放和办理代码的 “网盘”,咱们能够把自己的代码传上去进行同享和保护,也能够从渠道下载代码。

如何自学 Git / GitHub ?
如何自学 Git / GitHub ?​修正

注意不要把二者搞混!

Git 是东西(是抓手),而 GitHub 是渠道。两者没有必定的联系,咱们也能够用其他东西来向 GitHub 提交代码,也能够用 Git 向其他渠道提交代码。

为什么要用 Git / GitHub?

Git 从最开始便是 Linux 之父为了更好地办理 Linux 内核开发而创建的。

试想一下,假如有 100 个人一同来开发大型项目,怎样才能确保咱们的代码不重复,又能同享呢?难道把代码放到 U 盘里拷来拷去,或许口口相传说:我今日要改这个文件,其别人都别动?

肯定不行!

所以分布式版别控制系统和代码保管渠道呈现了。咱们能够把项目代码放到代码保管渠道上,每个人都从上面下载代码,然后在自己的电脑改代码、保护自己的版别,最后在发布前,把咱们不同版别的代码合到一同,再上传到渠道就能够了,非常便利高效。

公司为了安全,一般都会有自己的代码保管渠道。而 GitHub 呢,是开源的,相当于世界上所有人都是同一家公司的职工,咱们都能同享这上面的代码、免费学习和参加知名项目。

如何自学 Git / GitHub ?
如何自学 Git / GitHub ?​修正

为什么要学它?

它们便是为协作开发而生的。因而,大多数公司都在用它们来办理项目。所以只需咱们想找作业,就不得不学。

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

什么时候学?

记住两个时刻点就够了:

  1. 学过至少一门编程言语后
  2. 预备开发个人项现在

这样你就能够把之后做的所有项目都放到 Github 去办理,保护自己的项目库房。

Git / GitHub 学习重点和办法

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

一、Git 根底

本阶段方针

  1. 了解 Git 根本概念和常用指令的效果(理论)
  2. 能够运用 Git 指令来办理和提交项目代码,要走一遍完好的流程(实践)

学习办法

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

如何自学 Git / GitHub ?

如何自学 Git / GitHub ?修正

在学习时,咱们一定要跟着教程多敲指令 ,要自己走完重新建文件到提交文件的完好流程。以实际操作为主,而不要去背那些指令。由于其实咱们是能够用开发东西或许软件来可视化地操作 Git 的、并且哪怕忘了指令也能够查,所以死记硬背没有意义。

分支是 Git 里很重要的概念,咱们能够运用 Learning Git Branching 这个在线游戏来学习和了解分支。

猴子都能懂的 Git 入门教程:backlog.com/git-tutoria…

Learning Git Branching:learngitbranching.js.org/?locale=zh_…

二、GitHub 根底

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

可是假如咱们想上传代码到 GitHub、和别人协作,就得好好学习一下了。

方针

  1. 了解 GitHub 根本操作,并能够运用它来办理代码
  2. 了解如何使用 GitHub 查找和下载项目代码
  3. 最重要的。了解 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 ?

如何自学 Git / GitHub ?修正

之后有空的话我主张咱们阅览下 《GitHub 周游攻略》 ,这是一位大佬总结的经历技巧,能够加深你对 GitHub 的知道。

还能够阅览《开源指北》电子书来了解开源,打开新世界的大门。

Hello World 入门教程:docs.github.com/cn/get-star…

《GitHub 周游攻略》:github.phodal.com/

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

三、Git 进阶

企业开发中,项目或许很大、协作人员许多,就容易呈现代码抵触。比方你把我写的代码掩盖了,或许搞丢了一部分。

为了更好地防备和处理这些问题,成为项目办理大师呢,主张咱们仍是了解下 Git 进阶常识。

有同学说 Git 简略,假如只是能用它来作业的话的确不难。可是 Git 里边是有许多高档用法的,活用和会用有很大的区别。

方针

  1. 学习 Git 高档操作,尤其是能够熟练地规避和处理抵触。
  2. 了解企业常用的 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 ?

如何自学 Git / GitHub ?修正

GitHub 更多功用

方针

  1. 学习更多 GitHub 功用,从而提高研制效率、更好地办理项目
  2. 尝试用心保护和推广自己的 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 次都没被问到过,所以咱们不必故意去预备。

不过有时刻的话能够了解一下常见的面试题,比方下面这些:

如何自学 Git / GitHub ?
如何自学 Git / GitHub ?​修正

以上便是叶秋学长给咱们收拾的最常见的 Git 面试题,咱们快一键三连保藏起来吧,别忘记重视博主不走失,叶秋学长带你上高速~