Git 使用流程备忘(极简向 + 个人向 + ROS 开发相关)

Note: 本文具有极强的个人备忘属性,不是 Git 的通用教学,旨在以极简的方式备忘日常 git 工作流程。

个人版本控制使用场景:会持续迭代开发,但是不会经常回看历史版本,但又会在某些 debug 的时候回看某个历史版本,暂时不想花费过多时间学习工具高级用法。

1. Git 入门

1.1 学习资料
1.2 Git 仓库中文件的四种状态

理解 工作空间,暂存区,git 库, 三者的区别与联系。

在这里插入图片描述

  • Untracked - 在空间中,没加入 git 库,不参与版本控制,通过 git add 变为 Staged
  • Unmodify - 已经入库,未修改,两个去处:修改或删除 git rm
  • Modified - 已修改,两个去处:暂存 Staged 或回退 git checkout
  • Staged - 暂存状态,两个去处,提交 git commit 或取消暂存 git reset HEAD filename
1.3 Git 基础命令学习
  • add 添加命令

    git add . # 全部上 stage
    
  • commit 提交命令

    git commit -m "xxx" # 提交一次到本地仓库,并附加说明。
    
  • checkout - 切换命令

    # 修改,没有 add 的情况下 (未上 stage)
    git checkout --<file> # 直接撤销修改
    
    # 修改,add 后,但没修改 (上 stage 后没动)
    git reset <file> # 撤销 add 操作
    git checkout --<file> # 撤销修改
    
    # 修改,add 后,又修改了 (上 stage 后动了)
    git checkout --<file> # 撤销最新修改,保持和 stage 一致
    git reset <file> # 撤销 add 操作
    git checkout --<file> # 撤销第一次修改
    
  • reset - 重置命令

    git reset # 撤销 staged 的修改
    
  • status - 状态命令

    git status # 查看当前仓库状态
    
1.4 gitignore 文件
  • 用于声明不需要进行版本控制的文件,在 Gitee 上提供了很多模板,注意选择即可。

    # 注释
    ! 例外
    

2. Git 仓库使用流程备忘

本节旨在梳理普通的基于ROS的两种类型的项目,利用 Gitee 私有仓库和 git 进行版本控制的流程。

2.1 Git 首次使用的初始化配置
  • 初始化全局用户名和邮箱地址

    git config --global user.email "you@example.com"
    git config --global user.name "Your Name"
    git config --global core.editor gedit
    
  • 注册 Gitee,并添加本地机器的 SSH 公钥,复制里面的公钥添加到 Gitee 个人设置中。

    ssh-keygen # 一路回车,全默认
    gedit ~/.ssh/id_rsa.pub
    
2.1 普通的 Git 仓库工作流程

简洁的流程:在 Gitee 上创建空仓库,clone 下来,修改-提交-推送。

  • 远程仓库

    • 在 Gitee 上新建一个空仓库,于是就有个仓库的地址,在本地 clone 下来,由于已经配置了 SSH 公钥,注意选择 SSH clone

      git clone git@gitee.com:user_name/your_repo.git
      
  • 本地仓库

    • 克隆后,创建或从别的地方复制代码或文件过来,然后添加、提交、推送一条龙即可。

      git add .
      git commit
      git push
      
2.2 基于 ROS 的仓库工作流程
  • 远程仓库,大同小异,关键点是选择好 ROS 的 gitignore 文件,并不需要控制很多编译文件。

  • 本地仓库,将远程仓库克隆下来,目前是个空仓库,然后用 ROS 的那一套操作,初始化工作空间。

    mkdir src && cd src
    catkin_init_workspace
    cd .. && catkin_make
    
  • 然后把功能包拷贝或写出来,编译,确认第一个版本没啥问题,就提交,还是老三样。

    git add .
    git commit
    git push
    

3. 日常 Git 操作

3.1 IDE + 插件
  • 应对普通 C++/python 项目:利用 Clion 或 Pycharm ,同时网上有现成的 JetBrain 系列的 gitignore 文件,只控制源码版本,很方便,JetBrain 的 IDE 内部也集成了 git 环境,对比很方便。

  • 应对 ROS 项目:VSCode + git 插件,方便对比版本。

  • 日常 commit & push: 仍然喜欢使用命令行来 add,commit,push 三件套,清晰方便,对于个人小型项目开发来说,可能不需要或需要很少的 branch,因此这三句是日常最多使用的命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值