前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >我是怎么自学 Git / GitHub 的?

我是怎么自学 Git / GitHub 的?

作者头像
用户10216580
发布于 2022-12-06 07:19:20
发布于 2022-12-06 07:19:20
4650
举报
文章被收录于专栏:一叶知秋一叶知秋

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

本文大纲:

  • Git(GitHub)是什么?有什么用?
  • 为什么要学?
  • 什么时候学?
  • 要学什么知识?哪些是重点?
  • 怎么学?有哪些方法和资源?
  • 以及面试的时候可能会考什么?

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

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

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

 注意不要把二者搞混!

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

为什么要用 Git / GitHub?

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

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

肯定不行!

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

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

 为什么要学它?

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

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

什么时候学?

记住两个时间点就够了:

  1. 学过至少一门编程语言后
  2. 准备开发个人项目前

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

Git / GitHub 学习重点和方法

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

一、Git 基础

本阶段目标

  1. 了解 Git 基本概念和常用命令的作用(理论)
  2. 能够使用 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、和他人协作,就得好好学习一下了。

目标

  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 分钟。

之后有空的话我建议大家阅读下 《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 里面是有很多高级用法的,活用和会用有很大的区别。

目标

  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 的能力已经非常强了,除了代码的管理和检索外,它还集成了各种辅助团队开发和运营的功能,建议大家按需了解。

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 次都没被问到过,所以大家不用刻意去准备。

不过有时间的话可以了解一下常见的面试题,比如下面这些:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
利用 Git 和 GitHub 进行版本控制和协作管理的最佳实践
作为现代软件工程和开发的基础,版本控制是一种管理不同版本代码的方法。Git作为最受欢迎的版本控制系统之一,被广泛应用在软件开发中。GitHub是一个基于Git的在线平台,可以帮助团队协作和管理代码。下面将讨论如何使用Git和GitHub进行版本控制和协作管理的最佳实践。
用户1289394
2024/02/26
5030
利用 Git 和 GitHub 进行版本控制和协作管理的最佳实践
浅谈基于 Git 的版本控制工作流
因此,在本文中,我们就从「[版本控制简史」出发,揭开「基于 Git 的版本控制工作流」的神秘面纱。
CG国斌
2020/07/16
1.4K0
Git 学习路线图:为什么每个开发者都应该了解它?
“ 在当今的开发环境中,版本控制系统是协作开发的核心工具,而 Git 以其强大的分布式特性脱颖而出。本文将深入探讨 Git 的基本概念、实际应用以及其与传统集中式版本控制系统 SVN 的主要区别。还将提供在各种操作系统上安装和配置 Git 的详细指南。”
Lion Long
2024/07/26
1780
Git 学习路线图:为什么每个开发者都应该了解它?
新手必看:主流代码管理平台的选择指南
对于新手开发者,选择合适的代码管理工具是提升开发效率和协作能力的关键。推荐的工具包括 1.Gitee、2.Git、3.GitHub 和 4.BITBUCKET。这些工具各有侧重,适应不同的开发需求。Gitee 是国内开发者友好的代码托管服务,Git 是版本控制的核心基础,GitHub 是全球开源社区的首选平台,而 BITBUCKET 则适合企业级团队协作。建议新手从 Git 入手,逐步掌握 Gitee 或 GitHub,再根据项目需求选择进阶工具。
春江晚
2025/03/25
1620
Git 和 GitHub:从入门到实践1 Git 和 GitHub 基础简介
原文地址:https://www.ibm.com/developerworks/cn/opensource/os-cn-git-and-github-1/index.html
mafeifan
2019/01/28
7960
《书生大模型实战营第3期》入门岛 学习笔记与作业:Git 基础知识
Git 是一种开源的分布式版本控制系统,广泛应用于软件开发领域,尤其是在协同工作环境中。
流川疯
2024/07/26
1250
《书生大模型实战营第3期》入门岛 学习笔记与作业:Git 基础知识
【Linux系统编程】开源的分布式版本控制系统——git的基本使用
Git 是一个分布式版本控制系统,它由Linus Torvalds 于2005年创建。下面是 Git 发展的主要历史里程碑:
YIN_尹
2024/01/23
3940
【Linux系统编程】开源的分布式版本控制系统——git的基本使用
Git图文使用教程详解一
并且在自己 C:\Users\manman 下有个 .gitconfig 文件,打开里面就是我们设置的用户签名
程序员Leo
2023/08/02
2730
Git图文使用教程详解一
Git与GitHub:解锁版本控制的魔法盒子
Git是一种分布式版本控制系统,由Linus Torvalds创造,主要用于帮助多人协作进行软件开发。它用于管理项目的历史记录,包括文件的更改历史和各种版本。
Srlua
2024/03/10
1610
Git与GitHub:解锁版本控制的魔法盒子
目前最流行的版本控制软件:Git的基本使用
版本控制(Version control)是维护项目的标准作法,能追踪项目从诞生一直到定案的过程。此外,版本控制也是一种软件工程技巧,借此能在软件开发的过程中,确保由不同人所编辑的同一程序文件都得到同步,记录项目内各个模块的改动历程,并为每次改动都编上序号。
知识分子没文化
2023/07/01
5440
目前最流行的版本控制软件:Git的基本使用
Git、GitHub、GitLab三者之间的联系以及区别
在讲区别以及联系之前先简要的介绍一下,这三者都是什么(本篇文章适合刚入门的新手,大佬请出门左转)
用户9127601
2021/11/01
6370
Git简介与工作原理:了解Git的基本概念、版本控制系统和分布式版本控制的工作原理
本篇博客将带您了解Git版本控制系统的基本概念和工作原理。Git在现代软件开发中扮演着重要的角色,通过本文的介绍,您将了解Git的历史背景、核心概念、工作原理以及与分布式版本控制系统的优势比较。同时,我们还会介绍Git的基本操作、远程仓库与协作、解决代码冲突的方法和技巧,并提供Git常用命令的速查表供您参考。
猫头虎
2024/04/08
1.7K0
Git简介与工作原理:了解Git的基本概念、版本控制系统和分布式版本控制的工作原理
2021-1-7-一文掌握git/github使用,内容详细,适合小白~
本文先结合版本控制系统对git进行了简要介绍,再详细讲述了github注册使用教程和git安装使用教程,希望对和楼主一样的小白有所帮助。
用户7719114
2022/02/22
5240
2021-1-7-一文掌握git/github使用,内容详细,适合小白~
看完此文你不会Git,请来找我!
 数据是短暂的,且容易丢失。特别是作为开发人员的我们,需要频繁的对项目代码进行更新,容易产生错误的变更或者是项目文件的丢失。因此,我们需要在整个工作的过程中不断的备份和存档我们的项目文件。  在当下的项目开发环境下,一个项目往往是有多个开发者共同开发维护的,那么意味着他们需要操作同一项目文件,我们需要对文本和项目代码的变更进行记录管理,这些变更就构成了一个版本库,对版本库的管理就是版本控制。  一个可以管理或追踪软件代码的工具通常称为版本控制系统(VCS)。现在流行的版本控制工具很多,当然,我们接下来要说的就是称的上VCS界一哥的Git,它是一款功能强大、灵活且低开销的VCS,它可以让协同开发成为一种乐趣。
我就是马云飞
2019/03/08
9050
看完此文你不会Git,请来找我!
代码管理| 全面了解Git使用相关
要想弄明白git add和git commit的区别,首先我们需要知道三个概念:工作区(Working Directory)、版本库(Repository)、暂存区(Stage or index)。
進无尽
2018/09/12
9910
代码管理| 全面了解Git使用相关
Git的深入理解与GitHub托管服务的使用
许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间进行区别。这么做的唯一好处就是简单,坏处也不少:有时候会混淆所在的工作目录,一旦弄错了文件数据就没办法撤销恢复。为了解决这个问题,人们很久以前就开发了许多本地版本控制系统,大多是采用某种简单的数据库来记录文件的历次更新差异。
大江小浪
2018/07/25
1K0
Git的深入理解与GitHub托管服务的使用
持续集成交互部署入门学习笔记1
目的(Target): 让产品可以快速迭代,同时保持高质量(容易发现和改正Bug), 简化集成工作流程;
全栈工程师修炼指南
2022/09/29
5260
持续集成交互部署入门学习笔记1
使用 Git Extensions 简单入门 Git
关于这个主题,之前我录了段视频教程,在本地看清晰度还可以,但传到优酷上就很不清晰了,即使是后来重制后还是一样不清晰,所以现在想整理成文字版。当然,大家还可以将我百度云上的视频下载下来观看,连同优酷的相关地址都附在文末了。
独立观察员
2022/12/06
1.3K0
使用 Git Extensions 简单入门 Git
day10 | Git的正确使用姿势与最佳实践 | 第三届字节跳动青训营笔记
同时这也是课表的第9天课程《Git的正确使用姿势与最佳实践》。PC端阅读效果更佳,点击文末:阅读原文即可。
千羽
2022/11/11
1.1K0
day10 | Git的正确使用姿势与最佳实践 | 第三届字节跳动青训营笔记
如何优雅的玩转 Git
Git 和其它版本控制系统(包括 Subversion 和近似工具)的主要差别在于 Git 对待数据的方式。 从概念上来说,其它大部分系统以文件变更列表的方式存储信息,而 Git 是把数据看作是对小型文件系统的一系列快照。
硬件开源小站
2023/04/07
1.5K0
如何优雅的玩转 Git
相关推荐
利用 Git 和 GitHub 进行版本控制和协作管理的最佳实践
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文