当前位置: 首页 > news >正文

git 配置组合指令_ROS代码管理:Git和Github的使用

随着后续开发的代码量逐渐增加,采用代码管理工具可以实现高效管理、共享代码以及协作开发。

常用的代码管理工具有svn和git,采用svn可能需要自己搭建服务器端,使用git可以结合Github、gitee以及gitlab等代码托管平台,而且linux系统对git支持比较友好,本文以“ROS节点”为实例,介绍git以及Github的使用。

一 安装git

Ubuntu下安装git比较方便,执行下面一条指令即可:

sudo apt install git

验证git安装是否成功:

git --version

执行后,会打印git的版本,此时,完成git安装。

二 申请Github账号:

打开链接:

Build software better, together​github.com
b3b14b4c566497f666e4676b640cf9fe.png

填写账号,密码,和邮箱即可完成注册,注意推荐使用自己常用邮箱,用于后续配置git使用。

完成注册后,需要进入邮箱,完成验证,此时完成Github账号申请。

三 配置Github:

1. 检查密钥文件:

ls -l ~/.ssh/

查看是否有id_rsa和id_rsa.pub两个文件,如果有,跳过第二步。

2. 生成密钥文件:

ssh-keygen -t rsa -C "xxx@yyy.com"

"xxx@yyy.com"为前面申请Github账号时,使用的邮箱。在执行之后,一路回车,即完成生成密钥文件了。

3. 设置密钥:

打开链接:

Build software better, together​github.com
b3b14b4c566497f666e4676b640cf9fe.png

选择new ssh key,界面如下:

026e31b21e71022f9a9f2ba668f8c3d4.png

title随便填写下,然后把id_rsa.pub文件内容全部复制到key中,点击add ssh key,即完成配置。

四 创建仓库:

c2c74a4862b46155074e731420e83354.png

如图,点击+号,选择new repository,进入如下界面:

cfc169ab49bfd1363721fec8fe45e19f.png

填写仓库名字,和必要简介,然后选择仓库类型,public代码开放,即所有人都可见,private是私有仓库,目前Github也支持免费私有仓库。点击create repository 完成仓库创建,如图:

c1ff70115d0d9bdcfc59d883f156ff44.png

可以看到仓库地址。

五 移植ros工作空间:

1. 将远程仓库同步到本地:

cd ~/workspace
git clone ahuer2435/ros_program

后面链接要换成你自己的仓库地址。

2. 添加代码:

将我们前面创建的ros工作空间catkin_ws剪切到目录ros_program下:

cd ros_program
mv ../catkin_ws ./

3. 配置ros默认工作空间

因为ros工作空间路径改变,所以要同步修改~/.bashrc文件,将ros_program字段加入路径中,然后执行:

source ~/.bashrc

4. 清理老的编译结果:

rm -rf build/ devel/ install/

5. 检查ros编译环境:

catkin_make

6. 检查ros运行环境:

roscore
rosrun beginner_tutorials hello_world

运行效果如图:

0853775eb2414d32d8c7a427cd14b020.png

至此完成ros工作空间移植。

六 配置git账号:

在提交代码时,会有身份验证,所以需要配置个人信息,这会添加到提交记录中,命令如下

git config --global user.name "your_name"
git config --global user.email xxxx@yyyy.com   

名字和邮箱建议与前面保持一致。

七 配置git忽略编译的生成文件:

1. 配置.gitignore文件

touch .gitignore

将build,devel ,.vscode 填进入。

2. 检验配置是否生效:

git add ./
git status

执行效果如图所示:

caa13f259a27e3eb5e3e38f1fb1db30b.png

至此完成配置。

八 提交文件到仓库:

git commit ./ -m "frist ros commit"
git push

完成代码提交,刷新仓库,如图

396da6275a2c15bc6e75684529bd802a.png

可以看到,完成一笔提交。

九 小结:

提交代码三个步骤:

git add xxx
git commit xxx -m “commit”
git push

这里通过实例,演示如何使用Github和git的基本操作,并没有深入介绍其高级用法,因为我们的重点还是放在ROS的学习上,对git和Github感兴趣的同学也可继续学习,有问题欢迎留言交流。后面我们继续介绍ros,发布ros话题。

相关文章:

  • 通话录音_苹果手机不能通话录音很遗憾?学会这几个方法,不用被安卓党鄙视...
  • nodejs 点击按钮下载_记-Nodejs埋点服务-定位cpu瓶颈
  • 禅道开源版用户手册_Linux下部署开源版“禅道”项目管理系统
  • 前缀什么意思英语释义_玩转英语词汇-和生命相关的词根
  • 怎么将tflite部署在安卓上_Unity3D中使用TensorFlow.Net [零] 环境部署
  • 外卖行业现状分析_【行业资讯】国内首批外卖运营师获认证 2020外卖餐饮行业市场深度分析...
  • 后端跨域问题解决方案_打破ajax 跨域问题,游刃有余的解决方案,大神就是这样操作的...
  • 对某列进行操作_使用pandas替代Excel中的繁琐操作-条件判别和loc函数使用
  • 中object转为list集合_快速带你梳理Java单列集合之Collection
  • 代码回到之前版本_代码版本控制及托管:我的最佳实践
  • springboot处理参数再转发请求_springBoot PUT请求接收不了参数的解决办法
  • 如何在EDUIS中导出ETL字幕模板_教大家Edius如何设置导出mp4格式视频
  • r语言和metawin_【R语言】关于ggcor包消息的更新
  • git maven 一键部署_Docker+Jenkins+Git+Maven实现Springboot项目自动化部署
  • 添加删除元素_蔡司:CALYPSO高级应用 | 指数交换与添加删除循环
  • 【翻译】babel对TC39装饰器草案的实现
  • git 常用命令
  • React-Native - 收藏集 - 掘金
  • Spring核心 Bean的高级装配
  • TypeScript迭代器
  • 机器学习 vs. 深度学习
  • 蓝海存储开关机注意事项总结
  • 利用DataURL技术在网页上显示图片
  • 前端性能优化--懒加载和预加载
  • 微服务核心架构梳理
  • 系统认识JavaScript正则表达式
  • 正则学习笔记
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 从如何停掉 Promise 链说起
  • ​人工智能书单(数学基础篇)
  • # 飞书APP集成平台-数字化落地
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (办公)springboot配置aop处理请求.
  • (第61天)多租户架构(CDB/PDB)
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (九)One-Wire总线-DS18B20
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (七)c52学习之旅-中断
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转)shell调试方法
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .CSS-hover 的解释
  • .net web项目 调用webService
  • .Net 高效开发之不可错过的实用工具
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .net(C#)中String.Format如何使用
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • .ui文件相关
  • @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
  • @Transactional 竟也能解决分布式事务?
  • [Angular] 笔记 9:list/detail 页面以及@Output
  • [C/C++] C/C++中数字与字符串之间的转换