一、前言
最近吃饭的时候看完了狂神说的git系列,正好也在做一个人脸识别系统,所以刚好来实践一下~ 先把文档的连接复制一下: https://mp.weixin.qq.com/s/Bf7uVhGiu47uOELjmC5uXQ 视频就直接b站搜索~ 1、我想用git实现什么功能?[最后看看实现没有] (1)追踪历史记录 (2)多人协同开发 2、SVN有什么特点? 信息都在服务器上,用户本地只有以前同步的版本。 3、Git有什么特点? (1)分布式版本控制系统——所有人拥有全部代码 (2)可以离线在本地提交,联网时push到服务器或其他用户。 (3)没有中心服务器
二、下载安装git bash
1、我之前安装过了~ 2、常用的linux命令 ![在这里插入图片描述](https://img-blog.csdnimg.cn/be5933502e02485cb9e2b4637a27251c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55SE5bCP6IOW,size_20,color_FFFFFF,t_70,g_se,x_16)
三、配置Git
1、设置账户信息 2、查看当前配置 发现没有,可能之前没配置过 ![在这里插入图片描述](https://img-blog.csdnimg.cn/d2466bf2d73d4285aa3e1bfd3453745e.png) 3、进行配置 安装操作,对当前用户进行了配置。这一步是必要的,因为git每次提交都会使用该信息
四、基本理论
1、命令概览 ![请添加图片描述](https://img-blog.csdnimg.cn/360e0b82ea7e4c3a9210e7914fcf76be.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55SE5bCP6IOW,size_20,color_FFFFFF,t_70,g_se,x_16) 2、本地工作空间 这张图和底下的解释清楚地阐述了git在本地的三个区域,实在想截图。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/c439ea2411c9431ba1b7ab0a846e1d04.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55SE5bCP6IOW,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/fd4c34add3224b2caf0472a7e701c073.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55SE5bCP6IOW,size_20,color_FFFFFF,t_70,g_se,x_16)
3、工作流程![请添加图片描述](https://img-blog.csdnimg.cn/192668a9d2d9490c95cc29e8faa45d9a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55SE5bCP6IOW,size_20,color_FFFFFF,t_70,g_se,x_16)
五、Git项目搭建
1、创建工作目录(最好不要用中文球球了) 2、日常使用6个命令 ![请添加图片描述](https://img-blog.csdnimg.cn/44d6046e7c94481680c56e9f22afb7b3.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55SE5bCP6IOW,size_20,color_FFFFFF,t_70,g_se,x_16) 3、如何搭建本地仓库呢? (1)创建全新仓库 根目录执行git init (2)克隆远程仓库 git clone [url]
六、git文件操作
1、文件有哪四种状态呢? untracked\unmodify\modified\staged untracked:未入库 unmodify:入库,但是未被修改。 modified:文件被修改。git add->暂存;git checkout->丢弃修改。【这步nb,相当于改完以后后悔了,直接撤销】 staged:暂存状态 感觉这部分挺重要的,用visio画了一张图 ![在这里插入图片描述](https://img-blog.csdnimg.cn/21b15cd9fd5b464fa30f22db917ed17d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55SE5bCP6IOW,size_20,color_FFFFFF,t_70,g_se,x_16) 2、如何查看文件状态 git status [filename] git status 3、什么是忽略文件? 不想上传的文件需要忽略 .gitignore文件,有对应规则。
七、使用码云
1、去注册啦~ 2、为什么要绑定本机SSH公钥呢? 就是建立信任制剂,保证以后每次push的时候,能够直接登录到远程的账号里。 具体按照操作就好。 本地生成,在码云网站上设置。也就是我在码云网站上认证了我的这个本地git,下次我就本地请求的时候,远程一看是认证过的好兄弟jjg,就直接让它操作了,不用再登录认证身份之类的了。
有惊无险,还是要打开对应的文件复制公钥的。
3、创建自己的库 4、有个问题,git push如何知道我要push到哪个仓库? 其实是这样的,git push remote默认是origin,而origin在你远程克隆的.git里默认是你克隆后你的仓库。 merge则默认是主分支。 5、那么产生了另一个问题,本地生成的git对应的origin是?应该没设置 用这个操作设置: git remote add origin http地址 (关联本地仓库与远程仓库,默认已创建了远程仓库(Github、码云……))
做个实验叭 新建了一个git 尝试push,他会说,没有对应的远程仓库,需要指定 ![在这里插入图片描述](https://img-blog.csdnimg.cn/afa0f2a289d549b78a0a020087446638.png)
八、其它问题
1、git退出当前本地仓库 好像没有退出当前本地仓库,就是你切换到哪个本地空间,就进入了哪个对应的git。 2、git版本控制本地会储存文件的多个版本吗?会不会占用过多空间???
先做个测试,现在1.txt是unmodify状态我去modify一下 ![在这里插入图片描述](https://img-blog.csdnimg.cn/9065a84a1bd04b1fa7f3b8d2a72d0e47.png) 做了一些修改,应该边玩modified状态了 ![在这里插入图片描述](https://img-blog.csdnimg.cn/b8f4e75051d545ec9226690d75957953.png) 我还有一个文件未入库的2.txt,先记录一下
![在这里插入图片描述](https://img-blog.csdnimg.cn/4485eda4eaa542de8a0be0bb6d081c63.png) 现在把1.txt放入本地缓存,变为staged状态。直接用 add .,看看2.txt会不会也入库
事实证明,2.txt不仅入库了,甚至还直接变成了stated状态 ![在这里插入图片描述](https://img-blog.csdnimg.cn/82c0972b35454d119dd19000496c2ee2.png) 好吧,我们来把它们都commit,完美操作,加了-m ![在这里插入图片描述](https://img-blog.csdnimg.cn/9d40fa2d9f034092bd15aedff55fc375.png) 现在两个都变成unmodify了,所以啥都不显示 ![在这里插入图片描述](https://img-blog.csdnimg.cn/4d810e0a38864e33b2449e90bf64a44c.png) 再改下1,改为第二次修改 ![在这里插入图片描述](https://img-blog.csdnimg.cn/e37c89eba2bc4c728d840b34c57bd26e.png) 因为已经入库,所以显示1.txt的状态改变 ![在这里插入图片描述](https://img-blog.csdnimg.cn/a07ee268ba5a41b7832997704b1e4157.png) 现在直接commit,看看能不能入库 还不可以,因为噢噢噢好像我忘记-m了 ![在这里插入图片描述](https://img-blog.csdnimg.cn/de6f63d1ba0b4820b9cb65f31dded40a.png) 应该不行,那我们先c![在这里插入图片描述](https://img-blog.csdnimg.cn/60610ff82dfe4d0e93c0272fd4306601.png) 先add加入暂存,虽然还是modified,但其实已经变成need to be commited了 ![在这里插入图片描述](https://img-blog.csdnimg.cn/7ffceb57266d40399470dae7aaa64fd3.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/0df9a9e022ad45caafffd17b120d0f9d.png) 3、尝试一下恢复操作 先git log,可以查看到所有版本信息,因为涉及到个人隐私,我就不截图了。 我们恢复到1.txt的第一个版本
鹅鹅鹅理论上讲,不加hard就可以改变head的位置 ![在这里插入图片描述](https://img-blog.csdnimg.cn/c6a760e1c024436a9689a0a606872264.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55SE5bCP6IOW,size_20,color_FFFFFF,t_70,g_se,x_16)
有作用了,~是往前;^是往后。 后面可以加数字,代表几步。噢噢噢要加大于1的数字 额鹅鹅鹅好像res不是改的指针位置,是直接恢复了之前的版本,太恐怖了,在弄清楚之前,还是先做实验测试叭!! 现在应该是直接恢复了 还可以通过指定版本号恢复 鹅鹅鹅还是有区别的 没加 --hard是不会改变本地空间的,只是在缓存里。 所以现在1.txt还是没变的,应该。 确实没变 ![在这里插入图片描述](https://img-blog.csdnimg.cn/a5a42c384f3244f68ea2e5e4af173659.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55SE5bCP6IOW,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/56405576c90b40d281555e7d63604ec8.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55SE5bCP6IOW,size_20,color_FFFFFF,t_70,g_se,x_16)
鹅鹅鹅探究的乱七八糟,费了不少时间, 这篇关于git reset的文章不错,以后有时间、遇到具体问题再查吧,这样空想问题太浪费时间了,以后不要这样学习哦 https://www.jianshu.com/p/c2ec5f06cf1a
九、传一下
太晚啦,终于要把项目放到gitee上啦。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/3bdf82c2f5b74c09bc3ee9b1f0a76783.png) 好慢呀!!!!! 成功啦!!!!!!! ![在这里插入图片描述](https://img-blog.csdnimg.cn/9821a503602f4ddd9a39e25f1537340e.png) 睡觉去啦!!!!
|