产品目录
1.3 fork和pull request三个关键操作方式 4
2.4 第三种:ssh上载(Git)(rsa加密) 9
在写这篇讲义以后,我想说不然
作为一名机器人队老队员,我深知技术传承的困难和关键。
对于标准平台组来说,时间还会浪费在前人已经弄懂的API甚至是有关代码格式的问题上,这对我们去深入开发是非常不利的。
对于服务机器人组来说,更需要有两个代码托管,版本控制的系统来保证我们比赛所采用的工作空间可以继续被借鉴采用,从而越做越好。
但往往由于这些问题,我们无法安心地站在学长学姐的肩膀上继续前进,于是我所推荐大家尽快入坑Github。
在描述具体操作方式以后,我看过了很多b站up主的视频,以及网上的各种github博客,并针对我们活动队的情况写下了此讲义,如果各位同学耐心仔细研读,一定会有收获的。
1 如是说Git和Github
Github是全球最大的社交编程和代码托管网站https://github.com/;
Git是两个免费、开放源码的版本控制软件;
Github这个代码托管平台借助Git来管理工程项目代码;
版本控制系统是一种记录两个或若干个文件内容变化,以便将来查阅特定版本修订情况的系统。
1.1 先如是说三个基本原理
库房(Repository)
库房用来存放工程项目代码,每个工程项目对应两个库房,多个开放源码工程项目则有多个库房
收藏(Star)
收藏工程项目方便下次查看(对于github上的开放源码库房,有一百个star已经非常非常厉害了)
拷贝布季夫工程项目(Fork)
发动允诺(Pull Request)
tch)
事务卡片(Issue)
1.2 github三个网网页如是说
1.2.1 怎样步入各网页
1.2.2 Github网页
1.2.3 库房网页
1.2.4 个人网页
1.3 fork和pull request三个关键操作方式
这里不再赘述上三个图中的基本操作方式,挑三个关键的来说。
1.3.1 拷贝布季夫工程项目(Fork)
情景:张三fork了李四的工程项目,相当于张三拷贝了李四的工程项目,所以自己也单独有了两个一样名称的库房(注:该库房会声明来自于李四,但是独立存在)
1.3.2 发动允诺(Pull Request)
情景:张三修改了fork的工程项目中的文件,希望更新到原来的库房,这时候他要新建两个pull request
1.3.3 开放源码工程项目重大贡献业务流程
1)新建Issue
提交采用问题或者建议或者想法
2)Pull Request
步骤:
1、 fork工程项目
2、 修改此时位于自己库房的工程项目代码
3、 新建 pull request
4、 等待作者操作方式审核
2 Git的采用
2.1 具体来说学着建立两个新库房
(我们用的ubuntu16.04或者18.04都自带git,不用安装)
Git里面操作方式很多,这里面主要讲怎样提交自己写的工程文件到自己的库房Repository
此处如是说三种方法。
在如是说这三种方法以后,要学着建立两个新库房
2.2 第二种:拖曳法
优点操作方式极其简单,缺点速度极慢,一般都会卡住。所推荐有VPN的同学采用。
2.3 第三种:http上载(Git)(喽所推荐)
2.4 第三种:ssh上载(Git)(rsa加密)
我们需要先建立两个本地的版本库(其实也就是两个文件夹)。现在我通过命令行新建两个github_test文件夹,并且步入这个文件夹2. 通过命令git init把这个文件夹变成Git可管理的库房。这时你会发现github_test里面多了个.git文件夹,它是Git用来跟踪和管理版本库的。(ls –a可以查看隐藏文件)
3. 这时候你就可以把你的工程项目粘贴到这个本地Git库房里面(粘贴后你可以通过git status来查看你当前的状态),然后通过git add把工程项目添加到库房(或git add .把该产品目录下的所有文件添加到暂存区,注意点是用空格隔开的)。在这个过程中你其实可以一直采用git status来查看你当前的状态。
4. 用git commit把工程项目提交到本地库房, -m后面引号里面是本次提交的注释内容
5. 由于本地Git库房和Github库房之间的传输是通过SSH加密的,所以连接时需要设置一下:建立SSH KEY。先看一下/home下有没有.ssh产品目录,有不然看下里面有没有id_rsa和id_rsa.pub这三个文件,有就跳到下一步,没有就通过下面命令建立
然后一路回车。这时你就会在/home下的.ssh产品目录里找到id_rsa和id_rsa.pub这三个文件
6. 登录Github,找到右上角的图标,打开点进里面的Settings,再选中里面的SSH and GPG KEYS,点击右上角的New SSH key,然后Title里面随便填,再把刚才id_rsa.pub里面的内容拷贝到Title下面的Key内容框里面,最后点击Add SSH key,这样就完成了SSH Key的加密。具体步骤也可看下面:
7. 现在我们就可以远程库房和本地库房进行关联了,可以在本地github_test库房的命令行输入:
注意origin后面加的是你Github上建立好的库房的地址,如下图。
8. 关联好之后我们就可以把本地库的所有内容推送到远程库房(也就是Github)上了,通过:
至此就完成了将本地工程项目上载到Github的整个过程 !!!
注意:另外,这里有个坑需要注意一下,就是在网页上建立新库房的时候,如果你勾选了Initialize this repository with a README(就是建立库房的时候自动给你建立两个README文件),那么到了第八步你将本地库房内容推送到远程库房的时候就会报错。这是由于你新建立的那个库房里面的README文件不在本地仓库产品目录中,这时我们可以通过以下命令先将内容合并以下:
这时你再push就能成功了。
总结:其实只需要进行下面几步就能把本地工程项目加密上载到Github
1、在本地建立两个版本库(即文件夹),通过git init把它变成Git库房;
2、把工程项目拷贝到这个文件夹里面,再通过git add .把工程项目添加到暂存区;
3、再通过git commit -m “注释内容”把工程项目提交到本地库房;
4、在Github上设置好SSH密钥后,新建两个远程库房,通过git remote add origin https://*******.git将本地库房和远程库房进行关联;
5、最后通过git push -u origin master把本地库房的工程项目推送到远程库房(也就是Github)上。(若新建远程库房的时候自动建立了README文件会报错,解决办法看上面)。
注意:git采用https协议,每次pull, push都要输入密码,很麻烦。如果采用ssh密钥,可以省去每次都输密码,且只有第一次配置麻烦。
3. 最后
针对我们队情况的阿宝github加速上手指南就结束了,表扬大家的耐心学习!我们良好编程生态需要大家一起去创造维护,谢谢大家!




















