我们应该学会使用超绝git了,首先,什么是git?
git是超绝版本控制器(去中心化的分布式系统),什么又是版本控制,git和Gitee又有什么牵扯?
git安装
这是安装git:
yum install -y git
查看git版本
git --version
版本控制概念
什么是版本控制?
已知墨墨酱是一名大学生,墨墨酱有一名老师叫亨钺,亨亨很严格,不论是日常签到还是课后作业都严格把关,但是亨亨上课不讲什么,就导致墨墨酱每次要交实验报告的时候都只能抄舍友的,墨墨酱的舍友笙某去找亨亨交作业,被亨亨怒骂两小时(一堆打错字,语法错误,格式错误...),于是笙某怒改一万行,编译不报错咯,开开心心去找亨亨交超绝作业,结果又因为字体被挑错,于是回来改呀改呀改,又去找亨亨咯,亨亨质问笙某叫什么名字,怎么改了这么多次都不合格?笙某怕个人信息暴露拒不认错,又拿回去自己改咯,来来回回改了一周多,亨亨很无语,特意看花名册记住了笙某的名字,直接开启狂暴模式骂骂骂:“你是怎么做到改了这么多次实验报告一次比一次差的!!!也就第二次的还勉强算说的过去,你去把第二次的给我拿过来来”,快乐是亨亨的,笙某也快了,他前前后后改了三十多版,他怎么记得第二次是哪次?他已经改的自己都不ins了,笙某到宿舍的时候正好墨墨酱也刚回(墨墨酱看清人再借鉴啊!),墨墨酱在了解了前因后果之后决定助力一下,基本上copy了笙某的报告,去找亨亨交作业,亨亨看完后问墨墨酱是不是抄了别人的作业,怎么看起来似曾相识,墨墨酱直接动之以情晓之以理,从情面上讲,笙某是我舍友,会探讨借鉴很正常,从道理上讲,我们都是您教,标准都是一样的,出现相似很正常,您教的这么好,标准化程度高很正常,虽然都是好话,但是亨亨这次态度软化了很多,指出具体问题让墨墨酱拿回去改,改完交给她,墨墨酱也预料到了,于是拿回去修改了,由于有前车之鉴,所以墨墨酱在改之前先把它们拷贝并且编号,最终改了四遍还是不合格,亨亨心软了,告诉墨墨酱把第二版拿过来就让她过,还好墨墨酱早有准备,顺利的度过了难关,墨墨酱在做的工作就叫版本控制
git、Gitee,GitHub
故事仍在继续,墨墨酱爽了,沪cares笙某?墨墨酱有点爱莫能助,但是墨墨酱大义,像笙某这么可怜的小孩肯定还有很多,亨亨不止带一个班,于是墨墨酱去群里发消息:“同学们下午好!为了能更好的帮助同学们完成实验报告,我免费为大家提供版本控制符,凡是亨亨在带的同学们,可以添加我的微信,备注名字和个人邮箱,我帮大家统一管理,未来只要亨亨说要哪一版大家管我要就好了,希望同学们都能顺利过关”,由于很多同学都对墨墨酱和笙某的故事有所耳闻,就陆陆续续有很多人加墨墨酱的微信,善良的墨墨酱给每位同学都新建了文件夹以管理数据,于是墨墨酱的D盘就多了五百多个目录(善良的墨墨酱,目录==仓库),前文已经提过,墨墨酱可是超绝程序员啊!于是她自己写了一款软件,添加了网络功能,可以作为客户端使用(比如说A可以请求B,B也可以请求A),墨墨酱买了一台云服务器,把自己的软件部署在云服务器(增删查改)上,再将使用权开放出来,开放下载,后来墨墨酱还在努力优化,希望能让它好看点,于是墨墨酱又搓了个可视化界面出来(建设网站,所有当前的用户的文档,目录,仓库通过网页让对方直接看到)关系很明了了:墨墨酱写的小程序是git,部署的网站是Github&&Gitee(可视化操作)
git作用:对源代码的历史修改进行维护,保留历史的所有修改痕迹
还记得那个超绝大佬吗?雷纳斯托瓦兹,由于Linux系统开源,就有很多顶级的黑客和工程师来推送代码,那开发者先生就要想办法把外部代码合并到里面(但是参与的人会越来越多,可能以前每天能收到二十封邮件,现在每天能收到两千封邮件了)虽佬但人,大佬的时间不可能全用来改代码吧,他就在想能不能有个东西把大家提交过来的东西自动合并,帮助进行代码管理,发布时还可以进行版本控制,他就开始求助市面上的类似软件(还真让他找到了,但是收费),后序交涉了一下get免费使用卡了,大佬万岁!!!为什么雷纳兹托瓦兹不收购软件呢(不是没钱哦),这就涉及到开源精神的问题了,就算每个人只收一$,那也是违背开源精神的,所以就不想使用这种收费的软件(如果它收费,那是真的可能会拦住90%的人呐!!!)社区是需要大家共同维护的,还是要考虑大多数人呐,还发生了个突发事件:就是那个是收费软件,但是就会有大神攻破它,使用一些特殊手段来逃避收费验证,一个正版收费软件,被攻破导致盗版软件满天飞,你是老板你不气吗?气死我咯,不给你们用了!!!我公司几百号人就靠他吃饭呢!!!你什么意思!!!然后雷纳斯大佬就决定自己写git了(git也是他弄的哦,是不是超厉害)
git操作
首次使用需要配置:
git config --global user.name "XXXX"
git config --global user.email "YYY"
git在使用时需配置用户名及邮箱(咦惹好可怕,我都转码了还能通过邮箱找到我,不是找茬啊,新人看不懂代码发邮箱给佬请教一下怎么了)所以不论闭源开源,把邮箱留下方便他人给我们发信息,用户名、邮箱要和你的个人账户保持一致,这样github才能识别出是你提交的
在Github上新建项目
可以自选是否公开:
在创建好的项目中复制项目链接:
https://github.com/justice049/pineapple.git
创建放置代码的目录:(url就是上面的链接)
git clone [url]
显示隐藏文件可以发现:
当前有个目录名叫.git(本地仓库),看眼里面是啥:
这样可以查看提交后文件是否做出改动
git status
git add
将代码放到刚才下载好的目录中:
git add [文件名]
这是将需要用git管理的文件告知git
git commit
提交改动到本地
git commit .
. 表示当前目录 提交的时候应该注明提交日志, 描述改动的详细内容:
git commit -m "first commit,this is my process bar code"
git push
同步到远端服务器上:
git push
需要填入用户名密码. 同步成功后, 刷新 Github 页面就能看到代码改动了
git log
git log可以查看历史提交:
git log
这些变化的区别就是:git add是将代码提交到暂存区,而git commit是将暂存区的内容存到本地仓库,git push可以把自己本地的仓库与远端服务器进行同步(本地修改同步到远端)