ardupilot开发 --- git 篇

2023-12-13 04:45
文章标签 开发 ardupilot git

本文主要是介绍ardupilot开发 --- git 篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一些概念

  • 工作区:就是你在电脑里能看到的目录;
  • 暂存区:stage区 或 index区。存放在 :工作区 / .git / index 文件中;
  • 版本库:本地仓库,存放在 :工作区 / .git 中
    在这里插入图片描述
  • 关于 HEAD
    • 是所有本地分支的游标(指针);
    • HEAD既可以指向某个分支,还可以指向某个分支的某个(次)提交;
    • HEAD指向谁,谁就是和当前工作区、暂存区、相关联的分支,即:对于add、checkout、commit命令去操作的分支对象!
    • HEAD的存在非常重要,因为它提供了对当前工作区状态的快速访问和管理;
    • 相关命令:
      git checkout branch_name命令切换分支,HEAD会指向所切换到的分支。
      git checkout commit_hash命令切换到某个具体的提交,HEAD会指向该提交。
  • master和origin的关系
    • master 表示本地仓库主分支(名称);
    • origin 是远程仓库的代指;origin 是远程Git仓库的默认名称;
    • origin 是远程仓库的主分支?
    • 例如在使用:git clone https://github.com/ArduPilot/ardupilot.git 下载远程仓库代码时,在后续的操作中,默认会将 https://github.com/ArduPilot/ardupilot.git 指向的远程仓用origin来表示!
  • 本地仓库
    远程仓库的拷贝(这个说法不太准确)
  • 远程仓库
    • 用于多个本地仓库的协调开发;
    • 用于备份本地仓库;
  • 分支
    • 分支也称为“快照”
    • 一个分支代表一条独立的开发线;
      使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作,最后还可以合并到主分支:
      在这里插入图片描述
    • 只有仓库才存在所谓分支,工作区和暂存区不存在分支的说法;本地仓库有分支,本地分支;远程仓库有分支,远程分支;
    • 相关命令:
      • 参考文献:http://rogerdudler.github.io/git-guide/index.zh.html
      • 在远程开好分支,本地直接拉下来;
        git checkout -b feature-branch origin/feature-branch //检出远程的feature-branch分支到本地
      • 本地开好分支,推送到远程;
        git checkout -b developer_gen3_new_branch_name //在本地创建分支
        git push --set-upstream origin developer_gen3_new_branch_name //推送到远程
      • git branch + 分支名字:创建本地分支
      • git checkout -b <分支名> :创建并切换到新的本地分支
      • git checkout<分支名>: 切换到本地分支
      • git branch 查看当前分支
      • git branch -a:查看全部分支(包含本地和远程)
      • git branch -v:查看每一个(本地)分支的最后一次提交
      • git branch --merged:查看哪些(本地)分支已经合并到当前(本地)分支
      • git branch --no-merged : 查看哪些(本地)分支还没有合并到当前(本地)分支
      • git branch --no-merged master:查看当前未合并到master分支的有哪些?
      • git branch --merged master:查看当前已合并到master分支的有哪些?
      • git merge :将当前分支合并到主分支
      • git branch -d [branchname]:删除本地分支
      • git push origin --delete [branchname]:删除远程分支

Git 基本操作

  • 参考文献:https://www.runoob.com/git/git-basic-operations.html
  • 关于工作区、暂存区、本地仓库 的操作:
    在这里插入图片描述
命令说明
git remote -v查看远程仓库的地址
git add添加文件到暂存区
git status查看仓库当前的状态,显示有变更的文件。
git diff比较文件的不同,即暂存区和工作区的差异。
git commit提交暂存区到本地仓库。
git reset回退版本。
git rm将文件从暂存区和工作区中删除。
git mv移动或重命名工作区文件。
git checkout分支切换。
git switch更清晰地切换分支(Git 2.23 版本引入)。
git restore恢复或撤销文件的更改(Git 2.23 版本引入)。
  • 关于远程仓库、本地仓库相关的操作:
    在这里插入图片描述
命令说明
git remote远程仓库操作
git clone从远程获取代码库
git pull下载远程代码并合并
git push上传远程代码并合并
git submodule update --init初始化子模块
git submodule update --init --recursive下载子模块代码
  • 日志
命令说明
git log查看历史提交记录
git blame 以列表形式查看指定文件的历史修改记录
  • Git 标签
    https://www.runoob.com/git/git-tag.html

Git 服务器

  • 自己搭建服务器
  • 使用 github

参考:https://www.runoob.com/git/git-server.html

这篇关于ardupilot开发 --- git 篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/487179

相关文章

一文教你如何解决Python开发总是import出错的问题

《一文教你如何解决Python开发总是import出错的问题》经常朋友碰到Python开发的过程中import包报错的问题,所以本文将和大家介绍一下可编辑安装(EditableInstall)模式,可... 目录摘要1. 可编辑安装(Editable Install)模式到底在解决什么问题?2. 原理3.

Python+PyQt5开发一个Windows电脑启动项管理神器

《Python+PyQt5开发一个Windows电脑启动项管理神器》:本文主要介绍如何使用PyQt5开发一款颜值与功能并存的Windows启动项管理工具,不仅能查看/删除现有启动项,还能智能添加新... 目录开篇:为什么我们需要启动项管理工具功能全景图核心技术解析1. Windows注册表操作2. 启动文件

使用Python开发Markdown兼容公式格式转换工具

《使用Python开发Markdown兼容公式格式转换工具》在技术写作中我们经常遇到公式格式问题,例如MathML无法显示,LaTeX格式错乱等,所以本文我们将使用Python开发Markdown兼容... 目录一、工具背景二、环境配置(Windows 10/11)1. 创建conda环境2. 获取XSLT

Android开发环境配置避坑指南

《Android开发环境配置避坑指南》本文主要介绍了Android开发环境配置过程中遇到的问题及解决方案,包括VPN注意事项、工具版本统一、Gerrit邮箱配置、Git拉取和提交代码、MergevsR... 目录网络环境:VPN 注意事项工具版本统一:android Studio & JDKGerrit的邮

Git可视化管理工具(SourceTree)使用操作大全经典

《Git可视化管理工具(SourceTree)使用操作大全经典》本文详细介绍了SourceTree作为Git可视化管理工具的常用操作,包括连接远程仓库、添加SSH密钥、克隆仓库、设置默认项目目录、代码... 目录前言:连接Gitee or github,获取代码:在SourceTree中添加SSH密钥:Cl

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.