本文经漫画编程(ID:mhcoding)授权转载
放假的时候,我在家看《最强大脑》,女同事在旁边看手机,一切都很好。 谁知道,没过多久,她突然问我:
版本控制
如果要介绍什么是GitHub,就得介绍什么是Git,如果要介绍什么是Git,就得提到版本控制。
我们知道,如果多台计算机在同一个局域网中,就可以共享局域网中的文件。 共享者可以通过设置将文件共享给其他人阅读和修改。 
对于同一个共享文件,如果多人需要修改怎么办? 假设今天有三个人。 A共享文件夹mhcoding,其中包含mhcoding1.png、mhcoding2.png和mhcoding3.png三个文件。 B 和 C 需要更改此文件。
B和C分别将mhcoding文件夹复制到自己的笔记本中,然后进行更改。 更改后,他们需要上传自己的更改。 B修改完成后先上传自己的文件,覆盖A的共享。 然后C也改完了,我也上传自己的修改。 这样,C就会覆盖B的更改。
为了解决上述问题,需要一种方法在C要上传文件时提醒他,告诉他需要考虑到B已经更改了文件。
更好的方法是通过版本控制。
如果使用版本控制系统,每个团队成员都可以毫无顾忌地随时对任何文件进行更改。 版本控制系统可以提醒我们文件更改冲突,甚至可以帮助我们手动将多人的更改合并在一起。
通过版本控制,我们还可以回溯查看之前某个版本中特定文件的内容,也可以查看某个变更的变更内容。 特别适合团队合作。
版本控制方法
本地版本控制系统
很多人习惯通过复制整个项目目录来保存不同的版本。 事实上,他们会更改名称并添加备份时间以显示差异。 这样做的唯一好处是简单。 但也有很多好处:有时工作目录会混乱,一旦写入错误的文件,数据丢失,就无法撤消和恢复。

为了解决这个问题,人们长期以来开发了许多本地版本控制系统,其中大多数使用一些简单的数据库来记录文件以前更新的差异。
集中版本控制系统
然后人们遇到了另一个问题,如何让不同系统上的开发人员协同工作? 于是,集中式版本控制系统应运而生。
此类系统有一个集中管理服务器,保存所有文件的修订版本,协同工作的人员通过客户端连接到该服务器以检索最新文件或提交更新。
这些做法带来了很多优势,特别是与旧式本地版本相比。 今天,每个人都可以在某种程度上看到该项目中其他人正在做什么。 管理员还可以轻松控制每个开发者的权限程序人生网站,管理起来却轻松很多。
分布式版本控制系统
中心化最明显的缺点是中心服务器的单点问题。 如果中央服务器宕机一个小时,这一小时内没有人可以提交更新,协同工作就会变得困难。
如果中心服务器的C盘出现故障而恰好没有备份,或者备份不够及时,则存在数据丢失的风险。
于是分布式版本控制系统就出来了。 在此类系统中,客户端不仅仅提取最新版本的文件快照,而是完全镜像代码存储库。 这样,如果任何一个用于协同工作的服务器发生故障,事后都可以使用任何镜像本地仓库进行恢复。 因为每一次提取操作实际上都是对代码库的完整备份。

git
虽然Git是我们上面介绍的分布式版本控制软件,但Git有以下特点:
程序员是一个典型的需要团队合作的职业。 大多数情况下,需要多个程序员同时开发同一个项目,就像多个程序员需要同时更改一个Word文档一样。 因此,Git是很多程序员必备的工具。
GitHub
GitHub 是开源和私有软件项目的托管平台。 它被命名为 GitHub,因为它仅支持 Git 作为唯一的存储库格式进行托管。
所谓托管平台,就是可以用来存储文件。 但里面的文件都是可以公开访问的。
GitHub是一个软件源代码托管服务,使用Git进行版本控制,不过,GitHub也引入了一些社交属性。 堪称全球最大的程序员(同性)交友网站。 
简单地说,在 GitHub 中,您可以提交您编写的代码(在微博上发布)、关注(粉丝)某人、关注(点赞)项目、添加评论以及 Fork(转发)项目以自行更改。 这个功能和微博是一样的,只不过我们的抱怨换成了各种编程语言写的代码。 我们平时看到的开源代码大部分也挂在前面。
最近热门的996icu项目已经有超过10万个Star,这意味着有10万+人关注了这个项目。

GitHub 上这些荒唐的“项目”
服饰——男装巨头的聚集地
这个名为 Dress 的项目聚集了 129 名贡献者,上传了数千张男装照片,获得了超过 8000 颗星。
地址:
灭霸 - 冬兵团
Thanos.sh是一个开源冬日战士命令程序人生网站,可以随机删除笔记本电脑上一半的文件。

地址:
nocode——没有一行代码
这是一个问题比项目更令人兴奋的项目。 项目中没有一行代码,Issue 拥有各种炫酷的功能。
我想问一下,Star计划的27000人到底有多无聊? ? ?
地址:
程序员求职黑名单 程序员求职黑名单
地址:
hangzhou_house_knowledge 在北京买房的小窍门
地址:
周围有多少人 附近有多少人通过 Wi-Fi 信号
地址:
参考:
热门文章推荐
☞为什么说要退出QQ的都是绅士?
☞程序员不过是愚人节? ? ?
☞非双一流普通大学毕业,怎样才能赢得BAT的offer? |程序员有话要说
☞大数据时代,隐私被剥夺,你就没有自由了,隐私币就是你的救命稻草!
☞研究员:Intel VISA漏洞可访问电脑内所有数据
☞2019年微服务技术盘点(一) | 程序员硬核评测
☞如何将TensorFlowServing的性能提升70%以上?
☞如何教年轻学生编写第一个程序?
现实! 程序员只有跳槽才能加薪吗?
System.out.println("点个在看吧!");
console.log("点个在看吧!");
print("点个在看吧!");
printf("点个在看吧!n");
cout << "点个在看吧!" << endl;
Console.WriteLine("点个在看吧!");
Response.Write("点个在看吧!");
alert("点个在看吧!")
echo "点个在看吧!"
我把你认真点的每一次“看”都当作最爱