文科妹子都会用 GitHub,你这个工科生还等什么

在某乎上刷到一条关于 GitHub 的留言,如下:

点赞人数还不少,这说明还真有不少工科生不会用 GitHub,你看大小写都没有区分(手动狗头)。所以我就想写篇文章科普下,“新手如何使用 GitHub?”

01、GitHub 是什么

维基百科是这样定义的:

GitHub 是通过 Git 进行版本控制的软件源代码托管服务平台,由 GitHub 公司的开发者 Chris Wanstrath、PJ Hyett 和 Tom Preston-Werner 使用 Ruby on Rails 编写而成。

那 Git 又是什么呢?

再来看维基百科的定义:

Git 是一个分布式版本控制软件,最初由林纳斯·托瓦兹创作,于 2005 年以 GPL 协议的形式发布,最初目的是为更好地管理 Linux 内核开发。

简单点说就是,Git 是一个命令行工具,一个分布式的版本控制系统。它可以在背后默默地帮你管理和跟踪代码的历史版本,就好比一个时光机,让你在代码出错时不至于手足无措,快速回退到之前的历史版本。

想了解更多 Git 方面的知识,可以点击这个链接跳转:

https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-Git-%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F

很多初学者误认为 Git 就是 GitHub,但其实不是的。GitHub 是一个代码托管网站,只不过背后使用了 Git 作为版本管理工具。主要服务就是将你的项目代码托管到云服务器上,而非本地硬盘上。类似的网站还有 gitlab.com 和 gitee.com(国内版,中文名叫码云)。

02、GitHub 可以做什么

Do whatever you want.

上面这个答案是创始人之一 Chris Wanstrath 说的,我表示无法反驳。

1)托管代码

GitHub 会自动帮你记录代码的修改,在必要的时候,能够帮助你快速回退到之前的历史版本。

2)搜索开源项目

GitHub 是世界顶级开发者的聚集地,在这里你几乎可以找到任何你想要的东西。上面分享有许多优秀、著名的开源项目,在遵守其 License 的前提下,你可以免费使用、下载这些开源项目。这也是 GitHub 最为吸引人的地方。

通过下面这个网址可以查看 GitHub 上 TOP 200 的优质开源项目:

https://www.githubs.cn/top

其中就包含了我前段时间给大家推荐的 GitHub 上最励志的计算机自学教程:

中文版离线 PDF 下载地址如下所示:

https://pan.baidu.com/s/1tOyMq3sGa2-xuajGJJYwOQ,提取码:om0i

关于优质项目的搜索,你可能需要一些技巧:

https://juejin.im/post/6891056415440535565

你可能还需要一些方法:

https://www.zhihu.com/question/20084458/answer/1368411995

3)使用 GitHub Pages 搭建一个免费的博客网站

GitHub Pages 提供静态网页托管服务,它直接从 GitHub 上的仓库获取 HTML、CSS 和 JavaScript 文件,然后构建并发布网站。

配合 Jekyll、Hexo、Hugo、Pelican、Gridea 等第三方静态模板系统可以快速搭建一个漂亮的博客网站。比如说我的个人博客用的就是 Jekyll,访问地址如下:

http://www.itwanger.com

4)学习,提升能力

GitHub 有太多太多优质的教程资源,只要你肯去挖掘。下面这个网址列出来的资源都不错。

https://www.githubs.cn/awesome

比如说面试和刷题:

下面这个网址列举了一些非常不错的书单:

https://github.com/itwanger/JavaBooks

5)提升影响力

你可以将自己的开源项目发布到 GitHub 网站上,项目越受欢迎获得的 Star 越高,说明业界对你的能力越认可。一份优秀的 GitHub 主页,能为自己的简历润色不少。

我最喜欢的两个实战项目(推荐过无数次了),来自我的好朋友江南一点雨和 macrozheng。

微人事(19.2k star)的地址:

https://github.com/lenve/vhr

电商系统(43.1k star)的地址:

https://github.com/macrozheng/mall

当你看到这么多 star 的项目,并且真的是名副其实的好项目,是不是就特别佩服它们的作者,实话实说,我既是他们的朋友也是他们的粉丝。

6)其他

  • 图床,单纯地把 GitHub 做一个网盘。
  • BBS,单纯地交友互动聊天吹逼。
  • 翻译,之前有阿里的朋友就利用 GitHub 重写了一本《Java 并发编程》,在线访问地址:

https://github.com/RedSpider1/concurrent

离线版的 PDF 下载地址:

https://pan.baidu.com/s/11Z-IfAPEZNFWp_mAtqDIKw,提取码:drjx

03、注册 GitHub 账号

说了这么多 GitHub 的好处,还等什么,赶紧去注册一个 GitHub 账号吧!

https://github.com/join

一个 GitHub 账号除了可以作为交友的名片,当然也可以用来登录一些英文的学习网站,比如说 GeeksforGeeks:

04、下载 GitHub 桌面版

当然可以直接在 GitHub 网页上操作,不过,对于新手来说,一个 GitHub 桌面版更方便、更直白、更傻瓜式一些。

https://desktop.github.com/

05、创建新项目

我现在要写一个《教妹学Java》的专栏,需要一个仓库来存储代码,怎么做呢?

打开 GitHub 桌面版,选择「File」→「New Repository」。然后填写仓库名、简介,选择仓库存放的本地路径,就可以点击「Create Repository」 创建新项目了。

创建完成后,可以在网页端看到该仓库。

(咦,怎么刚创建就有 star 了?)

06、fork 项目

如果你在逛 GitHub 的时候,发现了一些不错的项目,想占为己有,那太方便了,只需要一个 fork 就能搞定。

前几天,我发现了一个很有意思的项目:state-of-the-art-shitcode,中文译作垃圾代码书写准则。不过,代码示例是用 JavaScript 编写的,并且中文翻译得很烂。

怎么办呢?fork 它,然后就可以重制成 Java 版,并且按照我的风格进行翻译。

07、克隆项目到本地

GitHub 的一个好处就是,它把项目存放在云端,当你需要的时候,只需要克隆到本地就可以了。

打开 GitHub 桌面版,选择「File」→「Clone Repository」。 可以直接克隆你账号下的项目,包括你创建的、fork 的、star 的。

也可以通过 URL 的形式进行克隆,这时候,还可以指定码云上的项目进行克隆。

08、编辑项目

建议你在电脑上安装 Sublime Text,一款颜值非常高的文本编辑器,安装成功后,GitHub 桌面版默认自动使用它来关联项目。

打开后,是这样的(见下图),不得不说,颜值真的高。

编辑一段文字后保存,可以在 GitHub 桌面版看到发生变化后的文件。

填写文件更改后的描述就可以点击「Commit to master」(GitHub 从 10 月份起将 master 更名为 main)按钮提交了。

点击「Push origin」 可以同步到 GitHub 云端仓库。

09、回退到历史版本

如果一不小心提交错了,怎么办呢?

点击「History」 面板,找到你要回退的历史版本,右键选择「Revert this Commit」。

再次点击「Push origin」就可以了。

10、同步云端

GitHub 可以多人协作,如果本地想和云端保持同步,可以在 GitHub 桌面版上点击「Fetch origin」

如果发现本地和云端有不一样的地方,就可以点击「Pull origin」 从云端拉取了。

11、还想进阶

通过以上这些基本操作,我想你一定会用 GitHub 了。

反正入门嘛,先不要去管 issue 啊、pr 啊、wiki 啊,能够迅速地通过实战得到反馈对于学习一门新的技能来说实在是太重要了。只要入了门,有了信心,你会爱上 GitHub 的。

如果你不满足于现状,还想更进一步,可以到 GitHub 官方按照课程进行学习。

https://lab.github.com/

除此之外,我再推荐给你一本不错的入门书籍《GitHub入门与实践》:

码字不易,希望你们能够喜欢,如果能够对你起到一点点帮助,那就太好不过了!

温馨提醒一点,记得让它躲进收藏夹吃灰哦,顺带点个赞就更好了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/70385.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文科生“转码农“风继续 理科生慌吗?Phyon最热

程序员是一个很热门的职业,至少对于文科生而言,这两年持续“转码农”风在继续,这会不会给理科生们带来压力呢? 其实,“转码”,即转行成为程序员,由于其高就业率、高薪资而在求职市场上大受欢迎&…

chatgpt赋能python:Python操作数据库:连接、查询和更新

Python操作数据库:连接、查询和更新 在开发Web应用或者处理数据时,操作数据库是必不可少的步骤。Python提供了许多标准库和第三方库来连接和操作数据库,如sqlite3、MySQLdb、psycopg2等。在本文中,我们将介绍如何使用Python连接、…

AI算力碎片化:矩阵乘法的启示

尽管AI的发展取得了巨大进步,但编译器LLVM之父Chris Lattner认为,AI技术应用并不深入,远远没有发挥出已有机器学习研究的所有潜力。而AI系统和工具的单一化和碎片化正是造成这一问题的根源。 为了让AI发挥其真正的潜力,计算碎片化…

APP后台以及用户数据被泄露 该如何防护

近期我们接到许多DK平台反馈APP里的用户信息数据被泄露,导致用户经常受到境外香港电话推广骚扰,有些用户甚至被网络诈骗,而且用户当天申请填写表单里的手机号,没过多久就泄露了,紧接着香港电话就会打过来,询…

ap计算机科学5分率,AP考试5分率及难度分析

2019年的AP报名窗口已经开启,AP选考究竟要注意些什么?如何结合科目难度和自身情况,申请的时候尽可能地凸显的优势呢?今天老师从AP各科的难度和5分率进行分析,让大家了解过往战况,好好制定最适合的选考策略。…

ALEVEL数学、物理、化学、生物与国内考试的区别

A-Level考试中数学、物理、化学、生物是常考热门科目,这些科目在国内高考中也有对应的科目,那么,两者之间有什么区别呢? 1、A-Level物理与国内高考物理 从知识范围广度来看,A-Level物理更胜一筹,涉及的知识…

PTA L2-046 天梯赛的赛场安排 (25 分)

天梯赛使用 OMS 监考系统,需要将参赛队员安排到系统中的虚拟赛场里,并为每个赛场分配一位监考老师。每位监考老师需要联系自己赛场内队员对应的教练们,以便发放比赛账号。为了尽可能减少教练和监考的沟通负担,我们要求赛场的安排满…

分析数学成绩,尽然我考了0分

编程语言:Python 简单的数据分析 导入 pygal 废话不多说直接上代码! import pygal radar_chart pygal.Radar() radar_chart.title 数学考试成绩分析 radar_chart.x_labels [班长, 学委, 体育委员, 学渣, 学霸,我] radar_chart.add(高三(5)班, [86, 96, 69, 49, …

T06 成绩排序

查找和排序 题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩 都按先录入排列在前的规则处理。 示例: jack 70 peter 96 Tom 70 smith 67 从高到低 成…

Quick Request使用教程

一、基本介绍 Quick Request作为IntelliJ IDEA的插件,提供给开发人员更好的调试体验,当前可支持Spring Mvc、Dubbo框架的所有请求,具有简单易用、自动生成请求参数、项目环境管理、历史请求记录、保存请求及快速搜索的特点,下面给…

python爬虫二十四:js逆向破解(一)

1、环境搭建 通过python代码模拟js去生成加密数据完成数据破解,需要用到PyExecJS模块 ①安装模块pip install pyexecjs通过模块的方法来读取js代码,也可以用js2py(不更新维护了)、selenium(driver.wxecute_script(js代码))去执行js文件,这里…

关于ref哪怕在$nextTick()中有时候获取不到节点元素的问题。(较为诡异的bug)

我的需求是用element-ui的messagebox,来实现验证码接受的功能。并将cancel按钮换成刷新功能,在beforeClose中实现验证码刷新。元素都是在$msgbox中生成的,下面是最开始出错的核心代码。 let result await this.$API.reqCaptchaImg();this.ca…

微信小程序实现分页加载,触底加载下一页,滚动加载

这里我就不写wxml了,就是一个列表循环,直接看js代码逻辑,注释都写在代码后面了,这个方法可以实现无限滚动加载,直到加载完最后一条数据,也可以实现触底没数据后,二次触底可以从新加载刷新&#…

某地刑侦大队对涉及6个嫌疑人的一桩疑案进行分析

(1)A、B 至少有一人作案; (2)A、E、F 三人中至少有两人参与作案; (3)A、D 不可能是同案犯; (4)B、C 或同时作案,或与本案无关&#xf…

今天,微软重新发明搜索引擎:首款ChatGPT搜索来了

从现在起,比 ChatGPT 更强大的语言模型直接进入了你的浏览器。 一夜之间,全球最大的科技公司仿佛都回到了自己年轻时的样子。 在谷歌宣布「实验性对话式人工智能服务」Bard 之后仅 24 小时,北京时间 2 月 8 日凌晨两点,微软发布了…

嵌入式工程师的入门须知----亲测

嵌入式工程师的学习路线----亲测 本文概述入门之前必做竭尽所能了解嵌入式技术与职业规划正确认识自己 我眼中的嵌入式技术我眼中的职业规划我的入门之路总结 本文概述 这是一篇关于想要踏进嵌入式技术之路与相关职业规划的建议性文档,文中观点仅限于个人对于嵌入式…

嵌入式软件工程师面试必备技能

随着当前信息化网络技术在各行业的快速普及,嵌入式系统在技术领域呈现了前所未有的发展趋势,作为一个正在崛起的热门IT行业,人才的匮乏已经成为了嵌入式开发行业发展过程中呈现出的一种现象。据相关部门统计,我国目前嵌入式软件工…

电子通信、嵌入式工程师的面试指南

作者:火哥 授权转载自公众号嵌入式老鸟的职场之道(id:ict_embedded),火哥也是我们的校园代理 火哥自从校招找工作到现在,面试过不下50家公司,拿到过不少于30个offer。虽然不能说百战百胜,但是也还算有着较…

嵌入式软件工程师培训:提升技能、实现卓越

如果您对嵌入式培训感兴趣,以下是一些建议和关键点,可以帮助您进行嵌入式培训: 培训目标:明确确定您的嵌入式培训目标。是为了提升员工的技能水平,使他们能够承担更高级别的嵌入式开发工作,还是为了向非嵌入…

嵌入式工程师常用的软件工具推荐

前言:常言道:工欲善其事,必先利其器。作为一名合格的嵌入式工程师,日常可能需要接触和处理各种奇奇怪怪的问题,这时候一款高适配性的工具将会令工作效率大大提升。作者根据个人的实际使用情况与粉丝的客观感受&#xf…