前情提要:
唉,最近快要秋招了,鼠鼠出生广东某不知名双非本科,家里缺钱压力大,怕秋招找不到工作了,于是狠狠地去各大招聘网站看看别人的技术栈(其实早就该这么做了),但是自己的危机意识还是不够强,果然果冻武术学院的方丈说的没错:当人们失去危机感的时候,就是灾难即将来临的时候
看到有个大佬写了一个“会使用git工具”,猛然想起自己从大二开始,就不下十次听说过GitHub,Git,Gitee这些名词了,但是一直没有深究,最近沉下心来,打算研究一番,总共耗时两天,收获颇丰,所以写一下学习笔记,供自己忘记的时候查看,也顺便看看能不能帮到有缘看到这篇文章的人。
面向小白,我想用极其通俗的语言带入,(刚刚学完,我的理解有限,可能会出现一些错误,还请各位大佬海涵,请在评论区指出)
在这里附上一个我觉得非常不错的Git教程:同时我也想感谢廖老师!老师真的很强!
Git是什么东西?使用Git有什么好处:
先说结论:
1.Git是一种版本管理工具
2.在多人团队共同完成一个项目的时候,使用Git,可以很好的将每一个团队成员所负责的内容融合到最终工程里面,而且每个人都可以独立的进行开发,互不影响
可能结论听起来很模糊,没关系,请继续看下去:
因为在大学里面,我相信有不少人都是自己一路自学的,很少或者几乎没有与其他人共同完成一个项目,所以现在,假设你加入了一个科技团队,团队的指导老师让你所在的团队完成一个竞速小车项目,队长分配了3个人完成小车的驱动代码:你负责写摄像头驱动识别,A同学负责写电机驱动,B同学负责写PID控制算法
好了,你开始写代码了,写的差不多的时候,你的电脑突然发生某种不知名故障,等你修复好的时候,发现自己的代码文件在这次故障中莫名不见了,你悲痛欲绝,找半天找不到,只好重新写一份,假如你最开始构建工程文件的时候,就使用Git,那这个问题简直就是小菜一碟,直接去对应的代码管理平台(Github、Gitee),重新克隆一遍就OK
A同学每次修改电机驱动代码的时候,总是需要保存多个“副本”,有两三个还好,一旦多起来,A同学管理起来就非常困难,而且命名也比较困难。也不敢删除,万一哪天用上了怎么办?而且,假如第7次修改后发现,还是不修改的时候不错,然后会发现忘了之前改过哪里了,就算知道用ctrl + z撤销,那万一你修改的地方很多,而且中途保存并且关闭了该文件,这时候想找回就很困难了,如果A最开始使用Git,那这个问题简直就是小菜一碟,只需要使用版本回溯功能,就可以解决这些烦恼
假设团队不负众望,终于晚餐了任务并且拿到了奖项,后续的代码工程文件又该存放到何处?也许你会说U盘,但是万一U盘损坏怎么办?放网盘?网盘大部分都要收费的,这时候,就可以将其存放到代码托管平台(GitHub,Gitee),不怕任何丢失风险,同时可以通过设置权限决定是否允许其他人下载
所以,也许你单个人开发的时候,Git也许显得不太重要,但是当你步入社会,参加公司的大型项目的时候,你往往是作为大型团队中的一员去完成项目的,同事之间的同步协作就显得尤其重要,无论如何,Git绝对是在多人协作的时候必备技能与工具!!
至于如何安装Git,我觉得很多教程讲的都不错,我觉得没必要叙述,这里我只想列出我个人遇到的一些问题
我遇到的问题:
1.本地 pull/push 推送代码到GitHub的时候出现22端口连接超时,测试连接也是 22 端口连接超时出现报错:ssh: connect to host github.com port 22: Connection refused fatal: Could not read from remote repository.
这个问题经过翻译,表明 SSH 连接到 GitHub 服务器被拒绝了, GitHub 的 SSH 端口 (22) 被阻塞,我试过切换为手机热点或者校园网,都不行,ssh 密钥没问题、也开了 Watt Toolkit 网络是通的。
解决方法:
1.先测试:输入下面的指令,测试与 GitHub 的 SSH 连接是否正常
ssh -T git@github.com
结果:
(借的图,当时我的情况一模一样,但是当时我没截屏),time out 说明连接超时
2.将 ssh 连接端口修改为 443 进行连接测试:执行命令
ssh -T -p 443 git@ssh.github.com
结果:
显示如上 Hi <username>! You've successfully authenticated, but GitHub does not provide shell access. 信息代表着通过 443 端口成功进行了身份验证,但 GitHub 不提供 shell 访问权限
3.在建立SSH密钥的时候会在C:\Users\26570(我的用户名)目录下生成一个.ssh文件,我们进入.ssh文件,创建一个config文件(文件类型就是叫“文件”)
或者之间copy id_rsa文件,重命名为config,在里面修改内容为以下:
# Add section below to it
Host github.com
Hostname ssh.github.com
Port 443
(我记得有个帖子说过,不要使用windows自带的文本编辑器编辑,最好使用VS Code编辑,好像是有关编码什么的,记不太清了,找到的话我会补充)
最后push即可
2.git push -u origin main报错
上传本地项目到远程仓库的时候,git push -u origin main指令报错(具体是什么报错忘了)
解决方法:
将该指令改成:
git push -u origin main -f
小总结:
1.上传本地项目到代码托管平台的具体步骤:
第一步:
git init
目的:让所在工作区的目录变成可以被Git所管理的目录
第二步:
git add .
目的:添加工作区所在目录的所有文件(‘.’的意思就是所有文件,如果是单个文件则改成单个文件全称:文件名 + 文件类型扩展名)到版本库的暂存区(不包括.git文件)
第三步:
git commit -m "提交说明"
目的:把暂存区的所有内容提交(commit)到当前分支
第四步:
git remote add 远程仓库别名(自定义) git@gitee.com:ybfqw/my-u8g2-graphics-library-code.git(这是远程仓库地址,到自己所创建的远程仓库查看)
目的:将本地库的内容关联到所创建的远程仓库,远程仓库地址由自己所创建的远程仓库查看
ps:远程仓库别名默认是origin
第五步:
git push -u 远程仓库别名 远程仓库分支名
目的:设定你的本地库的文件要推送到远程仓库的哪一个分支