目录
使用git命令行
git&&gitee&&github的关系和意义
git叫版本控制器,gitee是基于git制作出来的,git和gitee来做代码备份。
git为什么叫版本控制器?
比如如果一个同学需要交“C语言实验报告”,但是他的老师对作业的要求比较苛刻,如果在同一份作业上修改,修改到最后老师仍然说最后这份不理想,还是把一开始你给我的作业交上吧。
所以不只是在原有的文件上修改,而是通过拷贝,并且命好名称方便查看,比如version1、version2等等。
当然,如果在一个公司当中,比如王者荣耀新上线的版本是v5,但是v5挂掉了,这是一个非常严重的事故,所以有了“版本控制”,可以回退到v4,随后就可以方便处理v5的问题了,然后就是测试以及上线v5。
git版本控制器是一个程序,可以用在本地机器,也可以上传到云服务器,具体可以参考gitee。
不同的人在使用git的基础上在各自的云服务器上衍生出了例如gitee和github的代码托管平台。
什么是中心化和去中心化?
简单地说,中心化的意思,是中心决定节点。节点必须依赖中心,节点离开了中心就无法生存。在去中心化系统中,任何人都是一个节点,任何人也都可以成为一个中心。任何中心都不是永久的,而是阶段性的,任何中心对节点都不具有强制性。
“程序员就是喜欢起名字起一些专业术语”
话说回来git的发展背景是怎样的呢?
在91年之后,为了解决这个版本控制的问题,雷纳斯托瓦兹在寻找一个版本控制器,但是当时基本上都要钱,为了秉持开源,要钱的肯定不能让大众使用,后来,有一个专门做版本控制器的公司找到了雷纳斯托瓦兹,人说:毕竟你们做的是为了世界的美好发展,我们就免费给你我们的版本控制器,所以就有了自己的版本控制器,并且开源使用。
开源后,好景不长,有黑客就黑了源代码,这是肯定不行的。后来,雷纳斯托瓦兹就自己研发了自己的版本控制器,并且通过开源的方式促使行内大佬们提供免费的新的代码方案。
但是如果电脑磁盘坏了、电脑坏了本地的文件咋办?
这就需要再产生一个新的git,也就是所谓的gitee和github。通过共享的方式、同步的方式来存储副本。本地的多个版本其实是和远端多个版本是一样的。
修改的时候可以同步到远端,如果需要再从远端拉取就可以了(git/clone)。
可以在Windows和linux上写代码,也可以通过git来上传代码到远端,这称为分布式的。
Windows下载git和小绿龟则是可视化界面,那Linux下的git操作呢?
首先,通过git clone 远端仓库地址-----》来获取远端仓库。
其次可以在仓库(其实就是个文件夹)中,尝试创建一个名为test.c的文件,里面内容可以写helloword的c语言代码,接着使用git status来查看git仓库的状态,此时可能会提醒需要git add .或者git add test.c来将文件添加到git中,注意这只是git的暂存区,还需要通过写日志的方式来真正的将修改后的文件放入git版本控制器中:git commit -m "",注意""里面的内容一定要写的合适恰当,因为表明了git托管的注释信息,比如:git commit -m "添加第一个源代码test.c"。
再使用git status来查看状态,接下来则是git push上传到远端仓库,即本地仓库和远端仓库同步。
其他的命令还有git log。
解释一下一些git里面的文件含义
.gitignore 即忽略掉不想本地托管/上传的文件。用过Windows上的git就知道有些不必要托管的例如.obj文件就可以直接忽略掉不上传,只上传对自己有用的。
为什么在Windows上和linux上同时git clone以后,在任意一个操作系统上修改文件后,另外一个操作系统再进行git操作的时候会出现报错?
因为git仓库要提交,必须保证本地仓库的内容和远端仓库内容一致。
即需要git pull,拉取远端仓库到本地仓库。
总结git的三板斧在linux上的使用很重要,因为未来工作在云服务器上即linux操作系统上要学会使用git的三板斧来备份代码。