注意,看本文之前或者之后,建议阅读(起码知道查阅,别光搜索引擎检索)git pro,这是git官方出的教程,有中文,无论今后研究什么方向,官方提供的东西总应该是优先考虑的。
学一个东西,很有必要先从官方文档开始,个人建议做计算机专业或从业人员,学 Git,是很有必要看下 Pro Git 的
啃文档 啃不动的时候 就搜索啊,哪里不会点哪里啊
反正要多上手,多实践,多总结,光看文档 也不行.
版本管理 很有必要规范
——Quentin in Beautiful Apps
什么是&为什么用 GitHub&Git
Github ,是一个代码托管网站,简单来讲,就是给你的代码一个存放的地方。使用GitHub需要用到Git工具,这个工具是用来控制代码版本的,简单来讲,就是git可以协助你记下这次提交和上一次提交之间,代码变化了哪些部分。
然而这就会产生一个问题:为什么你的代码会需要存在GitHub上呢?直接在本地电脑上编辑不好么?很好,下面我就来解释一下为什么会有GitHub:
- 多人合作的时候,代码不一定只有一份&代码要在多人多台设备之间同步
- 一个大的项目通常不是一蹴而就的,需要多次逐步的编写于修改,记录更改详情有助于开发人员了解项目的构建的从无到有的流程
- 后期Debug时,合理的利用git和其版本回退功能可以有助于快速定位解决问题和解决因为Debug引入的问题。
总之,在我们RoboMaster队伍中视觉和电控代码都会上传到Github上并使用Git控制代码版本,方便多人协作和控制版本。
怎么用Github&Git
Git使用
安装
Git本质就是一个软件,而使用软件的第0步是安装软件,git的下载链接 ,如果下载速度缓慢,可以试试这个链接 (为什么用诚通?别问,问就是和百度云过不去)(密码admin)
如果没有截图提示的话就一路下一步 这里选择你需要用git的代码编辑工具,默认是nano或者vim,但是如果你装了VSCode而且比较喜欢用它,那么你就可以像我一样换成VSCode。剩下的部分一路下一步或者按照自己的喜好来选就可以。
随意找一个有文件的地方右键能看到Git Bash Here就说明你已经安装好git了,之后提到
运行git代码
默认说的就是找到对应文件夹右键选择Git Bash Here。
初始化
先随便找一个地方打开git bash,运行如下代码,Your Name
部分改成你的网名或者今后使用Git、GitHub的昵称,email@example.com
部分写成你的邮箱(建议与github、gitee注册时使用邮箱相同)。(注:$是系统自动生成的命令提示符,别复制)
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
比方说我的话就应该这样配置:
好了,现在电脑里就已经有一个Git工具了,快来新建一个文件夹试试吧!
建立本地仓库
注意,剩下的部分借用廖雪峰的教程并对其有大幅度的精简,如果看完觉得还想深入了解请自行搜索git使用教程或者访问廖雪峰的git教程网站 https://www.liaoxuefeng.com/wiki/896043488029600/896827951938304
! 请注意,为了尽可能地减少错误,我们下面的操作均应避免使用中文名和在C盘内部操作。
随便找一个目录新建文件夹并随便起一个英文名 ,比如我在E盘建立了一个新的文件夹E:\GitTest
作为本次训练使用git命令的目录在此处Git Bash,轻敲
git init
你现在就成功地建立起了一个git仓库(它目前仅存在于你的本地电脑上) 现在我们就可以开始尝试使用git工具所涉及到的命令了。
将文件放入仓库
现在我们编写一个readme.txt
文件,内容如下:
Git is a version control system.
Git is free software.
一定要放到learngit
目录下(子目录也行),因为这是一个Git仓库,放到其他地方Git再厉害也找不到这个文件。
把一个文件放到Git仓库只需要两步。
- 第一步,用命令
git add
告诉Git,把文件暂存到仓库:
$ git add readme.txt
执行上面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。
- 第二步,用命令
git commit
告诉Git,把文件提交到仓库:
$ git commit -m "wrote a readme file"
[master (root-commit) eaadf4e] wrote a readme file
1 file changed, 2 insertions(+)
create mode 100644 readme.txt
简单解释一下git commit
命令,-m
后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,比方说我们在这里新建了readme文件,commit内容就说写了一个readme文件,清晰明了,这样你就能从历史记录里方便地找到改动记录。
嫌麻烦不想输入-m "xxx"
行不行?确实有办法可以这么干,但是强烈不建议你这么干,因为输入说明对自己对别人阅读都很重要。实在不想输入说明的童鞋请自行Google,我不告诉你这个参数。
git commit
命令执行成功后会告诉你,1 file changed
:1个文件被改动(我们新添加的readme.txt文件);2 insertions
:插入了两行内容(readme.txt有两行内容)。
小结
以后常用的命令:
初始化一个Git仓库,使用git init
命令。
添加文件到Git仓库,分两步:
- 使用命令
git add <file>
,注意,可反复多次使用,添加多个文件; - 使用命令
git commit -m <message>
,完成。
当然,借助VSCode等工具之后,你或许点几下鼠标即可达成同样的效果,但是那些都是在你了解git命令含义的基础上的进阶操作,而且很多地方没法安装或者很难安装VSCode这样的工具(比方说网络差的情况下),所以起码你要会检索着使用git工具的命令行形态。
哦对了,如果你想更进一步了解git的使用的话,不仅可以看廖雪峰的教程,还可以看看这个网站(请用电脑访问)。
到现在为止,你已经可以使用git的基本功能做到版本控制了,但是目前你还不能使用git和GitHub联动,也不能将代码上传到GitHub上看完下面的部分你就知道如何使用git和GitHub联动以及使用git命令上传、下载代码。
Hello, GitHub
Github ,代码托管网站。
如果你还没有注册账号的话,其实不急,就算没有账户你仍然可以查看一些开源库的代码。
https://github.com/Matt-wzy/R-M_Robot (我们的视觉项目因为不想调设置,被迫开源)
以前我们用到的时候都会点击download zip,以后则会更多地使用git@github.com:Matt-wzy/R-M_Robot.git
。
好了,为了练习git命令和GitHub在线仓库的联动,你起码要有一个GitHub账户了。
注册GitHub账户
什么?这还要我教? 我随便搜了一下,看到一个结果,我也没仔细看,反正你能注册了就行
搞一个仓库
你看到外面的GitHub教程大多都是从零创建一个仓库,但其实没有必要,除非你们要从零开始重写整个视觉代码,否则从拿过我们的仓库开始就行(实际上是懒得又截图又打字写教程了)
具体方法如下:
为了练习推送
修改
命令,首先你需要有仓库的使用权限,这需要建立仓库的管理员设置,在此之前,你可以fork本项目,这样整个仓库的一个备份都到了你的账号底下 然后选好一个文件夹 不要用中文目录 下载(Git Bash命令)
git clone git@github.com:你的GitHub用户名/R-M_Robot.git
wala~ 你现在已经拿到了和我们视觉组3月27号一模一样的整个项目代码,如果你想可以大致阅览一下,不过我们此篇教程重点在于使用git&GitHub,所以暂不介绍目录结构和代码功能。
现在你会发现你下载下来的项目里面有一个隐藏文件夹名字为.git,对的,如此clone下的项目,git已经为你做好初始化了,你也不需要填什么仓库地址搞那些麻烦的东西
克隆下来的仓库应该长这样:
如果你会用qt的话,使用qtcreator打开rm-vision.pro,然后简单配置一下构建工具和项目目录以及工业相机驱动,就可以run了,不过这部分目前不是本教程的重点内容。(下次一定教)
简单一改readme,加个空格啥的(这就类似于我们以后改了什么代码),然后git add .
、git commit -m "Test edit"
然后再
git push
,现在你再上GitHub中你的仓库那里看一下,是不是已经有一次提交记录以及文件变更了呢?
如果你在多个设备上都clone了同一个人的同一个仓库,在一台设备上变更完提交之后,在另一台设备编辑文件之前记得先 git pull
这一行代码表示从远程拉取代码。如果你的本地仓库和远端仓库版本一致的话,你会看到这样的提示: 这说明你的仓库(已经commit的部分)已经是最新的,不需要操作。
至此,最基本的git&GitHub操作已经展示完毕,将来会有一个教程专门列举命令和其简要介绍。如有问题请在下方评论区留言或在群中交流。若想在下篇文章写出之前自学git&GitHub用法请点击上文提到的廖雪峰的网站,Pro Git电子书 Pro Git 不明来源的网站以及自行Google