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

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

http://www.lryc.cn/news/255720.html

相关文章:

  • Linux基础命令练习2
  • Vue阶段笔记(有js包)
  • 执行npm run dev报Error: error:0308010C:digital envelope routines::unsupported问题
  • 解决微信小程序中 ‘nbsp;‘ 空格不生效的问题
  • vue el-select封装及使用
  • 了解linux计划任务
  • 等待和通知
  • vscode 如何将正则匹配到的字符前批量加字符
  • 上个月暴涨34.6%后,SoundHound AI股票现在还能买入吗?
  • Termux+Hexo结合内网穿透轻松实现安卓手机搭建博客网站发布公网访问
  • 程序员的养生指南(生命诚可贵,一人永流传!珍惜生命,从你我做起)
  • FP独立站怎么搭建?看这一篇就够了!强烈建议收藏!
  • 【华为OD题库-068】找出经过特定点的路径长度-java
  • 高性能队列框架-Disruptor使用、Netty结合Disruptor大幅提高数据处理性能
  • Linux学习笔记3 xshell(lnmp)
  • 分享几个可以免费使用GPT工具
  • 一篇文章带你快速入门 Nuxt.js 服务端渲染
  • 导入JDBC元数据到Apache Atlas
  • 大数据项目——基于Django/协同过滤算法的房源可视化分析推荐系统的设计与实现
  • [网鼎杯 2020 朱雀组]phpweb1
  • 深度学习之注意力机制
  • WordPress:解决xmlrpc.php被扫描爆破的风险
  • Fiddler抓包模拟器(雷电模拟器)
  • RepidJson将内容写入文件
  • Endnote使用教程
  • java中用Thead创建线程和用Runnable创建线程的区别是什么?
  • 0013Java程序设计-基于Vue的上课签到系统的设计与实现
  • 2.修改列名与列的数据类型
  • [Firefly-Linux] RK3568 Ubuntu固件分区详解
  • SpringBoot项目访问resources下的静态资源