如何给女朋友解释什么是Git和GitHub?

ubuntu20.04下dsp-slam的运行配置 DSP-SLAM:具有深度形状先验的面向对象的 SLAM 阅读详情

周末,我正在家里看《最强大脑》,女朋友在一旁刷手机,相安无事。谁知道,刚过了没多久,她突然问我:

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

版本控制

想要介绍什么是GitHub,就要介绍下什么是Git,想要介绍什么是Git,那就不得不提版本控制。

我们知道,如果多台计算机在同一个局域网中,是可以进行局域网文件共享的。共享者可以通过设置把自己文件共享给他人进行阅读和修改。

640?wx_fmt=jpeg

对于同一份共享文件,如果又多个人需要修改的话会发生什么事情呢?假设现在有三个人,A分享了文件夹mhcoding,其中包含了三个文件mhcoding1.png,mhcoding2.png,mhcoding3.png,B和C需要对这份文件进行修改。

B和C分别把mhcoding文件夹拷贝到自己的电脑上,然后进行修改,改完之后需要再把自己修改上传上去。B先改完了之后把自己的文件上传上去,覆盖了A的分享。之后C也改完了,也把自己的改动上传上去。这样,C就会把B的修改覆盖掉。

为了上述这种问题,就需要通过一种方式来在C想要上传文件的时候来提醒他,告诉他需要考虑到B已经改过文件的事情。

比较好的方式就是通过版本控制。

如果使用了版本控制系统,每一个团队成员都可以在任何时间对任何文件毫无顾虑的进行修改,版本控制系统可以提醒我们文件修改冲突,甚至可以帮我们自动把多个人的改动合并到一起。

有了版本控制,我们还可以回溯查看以前某一个版本中具体文件的内容,还可以查看某一次改动的变更内容。非常适合团队协作。

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

版本控制的方式

本地版本控制系统 

许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。这么做唯一的好处就是简单。不过坏处也不少:有时候会混淆所在的工作目录,一旦弄错文件丢了数据就没法撤销恢复。

640?wx_fmt=jpeg

为了解决这个问题,人们很久以前就开发了许多种本地版本控制系统,大多都是采用某种简单的数据库来记录文件的历次更新差异。

640?wx_fmt=jpeg

集中化的版本控制系统 

接下来人们又遇到一个问题,如何让在不同系统上的开发者协同工作?于是,集中化的版本控制系统应运而生。

这类系统,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。

640?wx_fmt=jpeg

这种做法带来了许多好处,特别是相较于老式的本地版本来说。现在,每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理起来也轻松容易的多。

分布式版本控制系统

集中化最显而易见的缺点是中央服务器的单点问题。如果中央服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。

要是中央服务器的磁盘发生故障,碰巧没做备份,或者备份不够及时,就会有丢失数据的风险。

于是分布式版本控制系统面世了。在这类系统中,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。

640?wx_fmt=jpeg


640?wx_fmt=jpeg

640?wx_fmt=jpeg

Git

git其实就是一款我们前面介绍的分布式版本控制软件,Git具有以下特点:

  • 直接记录快照,而非差异比较

  • 近乎所有操作都是本地执行

  • 时刻保持数据完整性

  • 多数操作仅添加数据

640?wx_fmt=jpeg

程序员是比较典型的需要团队协作的职业,大多数情况下,都是需要多个程序员同时开发同一个项目的,就好像多个程序员要同时修改一份word文档一样。所以,Git是很多程序员的必备工具。

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

GitHub

GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。

640?wx_fmt=jpeg

所谓托管平台,也就是说他可以用于存放文件。只不过上面的文件都是可以公开被访问到的。

GitHub是通过Git进行版本控制的软件源代码托管服务,并且,GitHub还引入了一些社交属性。号称是世界上最大的程序员(同性)交友网站。

640?wx_fmt=jpeg

简单的说,在GitHub上面,你可以提交你自己写的代码(发微博)、关注(粉)某人、关注(赞)某个项目、添加评论、Fork(转发)一个项目来自己修改,这些功能和微博都是一样的,只是将我们的吐槽换成了由各种编程语言写的代码。我们平时见到的大部分开源代码也都是挂在上面的。

最近比较火的996icu项目我们说他有10多万的Star,就是说由10W+的人关注了这个项目。

640?wx_fmt=jpeg


640?wx_fmt=jpeg

640?wx_fmt=jpeg

GitHub上那些奇葩"项目"

Dress - 女装大佬聚集地

有129名贡献者在这个名为Dress的项目里集结,上传了数千张女装照,收获了8000余颗星。

640?wx_fmt=jpeg

你敢相信这是个码农?

地址:https://github.com/komeiji-satori/Dress

Thanos - 灭霸命令

Thanos.sh是一个开源的个灭霸命令,可随机删除电脑上一半文件。

640?wx_fmt=jpeg

地址:https://github.com/hotvulcan/Thanos.sh

nocode - 一行代码都没有

这是一个Issue比项目更精彩的项目,项目中一行代码都没有,Issue中各种装逼。

640?wx_fmt=jpeg


想问下,Star这个项目的2.7万人是有多无聊???

地址:https://github.com/kelseyhightower/nocode

programmer-job-blacklist 码农找工作黑名单 

地址:https://github.com/shengxinjing/programmer-job-blacklist

hangzhou_house_knowledge 杭州买房攻略 

地址:https://github.com/houshanren/hangzhou_house_knowledge

howmanypeoplearearound 通过 Wi-Fi 信号估计附近有多少人

地址:https://github.com/schollz/howmanypeoplearearound

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

参考资料:

https://git-scm.com/book/zh/v1/

https://www.jianshu.com/p/b2ad5d9daa23

https://www.zhihu.com/question/23498424

3D点云处理:PointNet++与PointTransformer的对比 摘要: 3D点云处理中,PointNet++和PointTransformer是两种主流深度学习模型。PointNet++通过分层采样和分组策略提取局部特征,而PointTransformer利用自注意力机制捕捉全局上下文。实验表明,PointTransformer在分类(ModelNet40准确率92.1%)和分割(ShapeNet mIoU 85.7%)任务上性能更优,但计算开销较大(训练时间180秒/轮)。PointNet++在实时性场景更具优势(训练时间120秒/轮)。未来可结合两者优势,或优化Tr 阅读详情

相关推荐

手把手用瑞萨E1仿真器调试RH850 CAN通信:从报文收发到底层寄存器监控

本文详细介绍了使用瑞萨E1仿真器调试RH850 CAN通信的全过程,包括硬件连接、CS+开发环境配置、CAN控制器寄存器解析以及双通道网关实战开发。通过实战案例和错误诊断技巧,帮助开发者快速掌握RH850F1L的RS-CAN控制器应用,提升车载网络开发效率。

weixin_30919429的博客 163

提取、拉取、推送与同步的区别(以Visual Studio与Github为例)

提取、拉取、推送与同步的区别(以Visual Studio与Github为例)

Joe_LAL_24的博客 1万+

记录——影刀RPA高级操作题(二)——使用影刀RPA内置包和”Xpath“获取数据,获取数据写入目标MySQL

【代码】记录——影刀RPA高级操作题(二)——使用影刀RPA内置包和”Xpath“获取数据,获取数据写入目标MySQL。

m0_74824002的博客 842

Git 提取和拉取的区别在哪

操作说明:Pull 操作是 Fetch 和 Merge(或 Rebase)的组合。首先,它会从远程仓库下载最新的提交和分支信息,然后将这些更改合并到你当前的分支中。这意味着你的本地分支会被更新为远程分支的最新状态。操作说明:Fetch 操作会从远程仓库下载最新的提交、分支信息等,但不会将这些更改合并到你当前的分支中。它只是将远程仓库的更新信息存储在本地,并不会自动修改你当前的工作区。

一个编程的同学 2403

Mac上Ollama服务IP访问失败的3种修复方法(含永久生效配置)

本文详细介绍了Mac上Ollama服务IP访问失败的3种修复方法,包括临时环境变量覆盖、永久Shell配置修改及进阶排查技巧。重点解析了OLLAMA_HOST环境变量的配置原理,帮助开发者解决Connection refused问题,实现局域网IP访问Ollama服务的需求。

weixin_29209805的博客 206

FCL碰撞检测库在Windows下的编译与配置(MinGW+CMake)

本文详细介绍了在Windows系统下使用MinGW和CMake编译配置FCL碰撞检测库的完整流程。内容涵盖MinGW-w64、CMake的安装与环境配置,关键依赖库Eigen和libccd的安装,以及FCL源码的编译、安装与实战测试。重点解析了CMake配置命令中的关键参数与常见错误解决方案,旨在帮助开发者高效完成FCL在Windows平台的部署,适用于机器人、游戏物理引擎等需要精确碰撞检测的开发场景。

sunny的博客 483

git fetch和git pull的区别

【是什么】:平时开发经常遇到不清楚的问题就百度/google,目的是能快速使用并解决问题。这时我们没有花太多时间去深入理解,只求能快速解决手头问题。 【为什么】但是如果要深入理解的话,发现有时候百度出来的技术文章不全面、不够深入,甚至不同文章或者评论说法是相反的,这时我们再看这些二手的技术文章就是浪费时间了,甚至会被引导至错误的方向。 此时,如果我们要深入、透彻理解的话就要去看官方技术文档了,...

weixin_30849591的博客 696

暗黑破坏神2重制版 mod制作教程(一)

暗黑2重制版mod修改教程

hhhh2312的博客 7455

关于Github中提取(获取)和拉取的区别

vs中的GitHub插件的同步选项中,存在“提取”、“拉取”两个选择,都能起到获取最新版代码的作用。 “提取”为fetch,“拉取”为pull。 “拉取/pull”从远程仓库拉取最新版本文件到本地,自动合并/merge。 “提取/fetch”从远程获取最新版本文件到本地,不自动合并/merge,最新版本在“分支”选项中的“remotes/origin”文件夹下可以查看,可以选择将其合并到maste...

weixin_41573970的博客 3万+

Python海康相机api---超简单入坑学习必看

海康官网下载相机驱动​安装好以后找到Python的开发文件目录参考:D:\MVS\MVS\Development\Samples\Python\MvImport这几个文件很重要,想调用海康相机取图会用到.​为了写代码方便可以把这几个文件拷贝一下,跟你的api主文件放在同一个文件夹下可以减少80%的烦恼.​。

weixin_59360687的博客 3478

openbmc mctp i3c适配步骤

本文介绍了在Intel OKS平台下,BMC作为I3C从设备如何适配MCTP over I3C的实现方法。主要内容包括:1)关键术语解释,如MDB(Mandatory Data Byte)值为0xAE,DCR(Device Characteristics Register)和BCR(Bus Characteristics Register)的设置;2)适配流程说明,包括BMC作为控制器主节点分配地址后成为MCTP端点,CPU作为总线所有者的角色转换;3)测试验证步骤,展示通过mctp-client工具发送指

wit_yuan的专栏 132

git的提取和拉取有啥区别

使用git fetch可以获取远程仓库的最新信息而不立即合并,适合在合并前先检查远程仓库的状态。使用git pull则会立即合并远程仓库的最新提交到当前分支,适合当你确定要更新当前分支并与远程仓库同步时。通常情况下,如果你只是想获取远程仓库的信息而不立即合并,可以使用git fetch;如果你确认要将远程的更改合并到你的分支中,那么可以使用git pull。

C'mon的博客 2195

YOLOv12涨点改进 | Neck特征融合改进篇 | YOLOv12引 入 BiFPN双向特征金字塔网络,显著提升了多尺度特征融合效率,目标检测、图像分割、图像分类,助力高效涨点

本文提出了一种基于BiFPN特征融合模块优化的YOLOv12目标检测方法。BiFPN通过引入可学习的权重实现高效的多尺度特征融合,结合双向连接机制提升特征提取能力。实验表明,该方法在COCO数据集上实现了优异的检测性能。文章详细介绍了BiFPN模块的原理、核心代码实现,以及如何将其集成到YOLOv12框架中,包括模块添加、配置文件修改等具体步骤。这种改进方案具有参数少、计算量小等优势,为高效目标检测提供了一种新的技术路径。

Ai缝合怪、助力小伙伴高效发论文 391

漫画:如何给女朋友解释什么是 Git 和 GitHub?

本文经授权转载自漫话编程(ID:mhcoding) 周末,我正在家里看《最强大脑》,女朋友在一旁刷手机,相安无事。谁知道,刚过了没多久,她突然问我: 版本控制 想要介绍什么是GitHub,就要介绍下什么是Git,想要介绍什么是Git,那就不得不提版本控制。 我们知道,如果多台计算机在同一个局域网中,是可以进行局域网文件共享的。共享者可...

程序人生的博客 3945

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

漫话:如何给女朋友解释什么是Git和GitHub

来自:漫话编程 周末,我正在家里看《最强大脑》,女朋友在一旁刷手机,相安无事。谁知道,刚过了没多久,她突然问我: 学习Python中的小伙伴,需要学习资料的话,可以前往我的微信公众号:速学Python,后台回复:简书,即可拿Python学习资料 这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数...

Python_1_3的博客 368

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

漫话:如何给女朋友解释什么是Git和GitHub?

本文经授权转载自漫话编程(ID:mhcoding)周末,我正在家里看《最强大脑》,女朋友在一旁刷手机,相安无事。谁知道,刚过了没多久,她突然问我:版本控制想要介绍什么是G...

优快云资讯 3624

如何给女朋友解释什么是Git和GitHub

周末,我正在家里看《最强大脑》,女朋友在一旁刷手机,相安无事。谁知道,刚过了没多久,她突然问我: 版本控制 想要介绍什么是GitHub,就要介绍下什么是Git,想要介绍什么是Git,那就不得不提版本控制。 我们知道,如果多台计算机在同一个局域网中,是可以进行局域网文件共享的。共享者可以通过设置把自己文件共享给他人进行阅读和修改。 对于同一份共享文件,如...

weixin_30877227的博客 113

漫话:如何给女朋友解释什么是 Git 和 GitHub?

点击蓝色 “视学算法” 关注我加个 “星标”,每天学知识!本文经授权转载自漫话编程(ID:mhcoding)周末,我正在家里看《最强大脑》,女朋友在一旁刷手机,相安无事。...

zandaoguang的博客 225

git 如何重新登录github_漫话:如何给女朋友解释什么是Git和GitHub

专注于Java领域优质技术,欢迎关注来自:漫话编程周末,我正在家里看《最强大脑》,女朋友在一旁刷手机,相安无事。谁知道,刚过了没多久,她突然问我:版本控制想要介绍什么是GitHub,就要介绍下什么是Git,想要介绍什么是Git,那就不得不提版本控制。我们知道,如果多台计算机在同一个局域网中,是可以进行局域网文件共享的。共享者可以通过设置把自己文件共享给他人进行阅读和修改。对于同一份共享文件,如果...

weixin_39687542的博客 180

git是什么_漫话:如何给女朋友解释什么是Git和GitHub?

脚本之家你与百万开发者在一起本文经授权转载自漫话编程(ID:mhcoding)周末,我正在家里看《最强大脑》,女朋友在一旁刷手机,相安无事。谁知道,刚过了没多久,她突然问我:1版本控制想要介绍什么是GitHub,就要介绍下什么是Git,想要介绍什么是Git,那就不得不提版本控制。我们知道,如果多台计算机在同一个局域网中,是可以进行局域网文件共享的。共享者可以通过设置把自己文件共享给他人进...

weixin_39593460的博客 142

漫话:如何给女朋友解释什么是Git和GitHub?-附福利

这是涛哥给你推荐的第18篇好文来源:漫话编程|作者:漫小话周末恰好周末,我正在家里看《最强大脑》,女朋友在一旁刷手机,相安无事。谁知道,刚过了没多久,她突然问我:版本...

涛哥聊Python 496
上一篇: 3天2100万!周杰伦的说好不哭,20万点评Python来分析
下一篇: 清北交浙研究生导师最敬佩的几个IT公众号
菜鸟学Python
博客等级 码龄9年 8062粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值