社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

我是怎么自学 Git / GitHub 的?

Github喵 • 1 年前 • 181 次点击  

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

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

Git 面试题


以上就是本期分享了,这份学习路线的详情和资源放到了 我的编程知识星球(点击了解详情),欢迎加入一起学习编程。可以向鱼皮和大厂同学 1 对 1 提问、帮你制定学习计划不迷茫、跟着鱼皮直播做项目(往期项目可无限回看)、领取鱼皮原创编程学习 / 求职资料等。最近秋招开始了,星球内也在帮大家规划求职进度、完善简历和项目亮点。


往期推荐

为什么国内做不出 JetBrains 那样的产品?

CentOS 停止维护,2022年,快来试试这些最佳替代方案!

计算机会是下一个土木吗?

除了Navicat:正版 MySQL 客户端,真香!

好用到爆!IDEA 版 Postman 面世了,功能真心强大!


最后,欢迎大家围观我的朋友圈,搞搞技术,吹吹牛逼。朋友圈也会发一些外包单,方便自己没时间的时候,小伙伴可以一起利用技术接一些副业项目赚钱!!!


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/137364
 
181 次点击