你的朋友凑过来说:"直接push到GitHub就行。"你微笑,点头,心里完全不知道他在说什么。
读完这篇,你不仅能听懂这句话,还能自己说出口,甚至讲给别人听。我们从最基础的开始。
先搞清楚一个问题:版本控制系统到底是干嘛的?
想象你在做一个网站。改了几行代码,网站崩了,却想不起来之前是什么样。熟悉吗?版本控制系统(VCS)就是来解决这个的——它像一台时间机器,记录你项目的每一个版本,随时能回去。
用VCS你能做到:保存代码的不同版本;出问题时回退到之前的状态;多人协作不互相覆盖;还能追踪谁在什么时候改了什么。
版本控制系统分三种。本地VCS把版本存在你电脑里,但没法协作。集中式VCS把版本存在一台中央服务器上,团队能协作,但服务器挂了所有人都没法工作。分布式VCS让每个人都有一份完整的项目副本,既能离线工作,又能灵活协作。Git就属于第三种,这也是它成为行业标准的原因。
Git是什么?一句话:像Word的修订模式,但针对整个代码库,强大一百倍。
Git是Linus Torvalds在2005年创造的分布式版本控制系统(没错,就是开发Linux内核那位)。它运行在你本地电脑上,每次保存进度就拍一张项目快照。
Git的特点很鲜明:速度快,大部分操作本地完成,不需要联网;支持分支,可以创建项目的平行版本随便实验;自带备份,每个副本都是完整备份;免费开源,全球数百万开发者在用。
所以当有人说"commit你的改动",意思是Git刚刚给你的代码拍了一张快照,就像游戏里的存档点。
那GitHub呢?Git是工具,GitHub是放作品的地方,让全世界看见。
GitHub是基于云的平台,把你的Git仓库托管到网上。Git在本地干活,GitHub让你:把项目存到云端;和团队协作;通过Pull Request互相审代码;用Issues追踪bug和功能;连接CI/CD流水线自动部署。
记住这个最简单的区别:Git是本地的版本控制,GitHub是云端的协作平台。所以当有人说"push到GitHub",意思是把本地的Git快照上传到云端,让别人能看见和访问。
几个核心概念,用生活化的类比帮你记住。Repository(仓库)就是带记忆的项目文件夹,记住里面每个文件的每次改动——"像你的项目文件夹写了日记"。仓库可以是本地的,也可以是远程的(比如在GitHub上)。
Commit(提交)是Git的基本单位,每次commit就是一次项目快照,附带描述信息说明改了什么。类比来说:commit像拍照,照片存进相册,相册就是仓库历史。
Branch(分支)是项目的平行时间线。主分支是稳定的线上版本,功能分支用来开发新东西,实验分支随便折腾不怕搞坏。用完可以合并回去,也可以直接删掉。
Push和Pull是本地和远程的同步操作。Push把本地commit上传到GitHub,Pull把GitHub上的更新下载到本地。
最后说说为什么这套东西值得学。Git和GitHub不只是工具,它们改变了写代码的方式。个人开发者能安全地实验新想法,团队能同时推进多个功能不互相干扰,开源社区能让全球陌生人协作打造Linux、React、TensorFlow这样的项目。
从小项目开始用,养成commit的习惯,慢慢就会理解为什么"push到GitHub"是开发者最常说的一句话之一。
热门跟贴