Git基础操作

2023-05-16

Git基础操作

    • 仓库配置
      • 初始化仓库
      • 查看当前所在仓库
      • 修改远端仓库
    • 代码提交
      • 基础操作
      • tag操作
      • 删除最后N次提交
      • 储藏
    • 代码管理
      • 分支操作
      • patch操作
      • 查看指定文件的修改历史
      • 统计代码量

仓库配置

初始化仓库

1,安装
sudo apt-get install git
2,名字、邮箱、检查
git config --global user.name "zhangsan"
git config --global user.email "zhangsan@xxx.com"
git config --list
3,生成SSH、测试
ssh-keygen -C 'xxx@xxx.com' -t rsa
cat ~/.ssh/id_rsa
4,git init
5,git clone

查看当前所在仓库

git remote show origin

修改远端仓库

git remote rm origin #删除旧的远端仓库
git remote add origin git@your_repo.git #增加新的远端仓库

代码提交

基础操作

git status 查看当前状态
git branch 查看本地分支
git checkout 切换分支
git pull origin从远端拉分支
git add *
git commit -m ”内容“
git push 向远端提交分支

tag操作

git tag -a v4.17.0.148 -m "4.17.0.148"
git push origin --tags
git tag -d test #删除本地tag
git push origin :refs/tags/test #删除远程tag

删除最后N次提交

git reset --soft HEAD^  取消commit,保留更改内容
git reset --hard HEAD~N (N为次数)
git push orange 分支 -f #强制覆盖

储藏

git stash list
git stash apply stash@{0}

代码管理

分支操作

git branch -a 查看当前分支
git push origin --delete ota 删除远端名为ota的分支
git checkout -b dev 开名为dev的分支
git merge dev 合并dev分支到当前分支
git branch -d dev20181018 删除本地分支

patch操作

# 生成fatch
git format-patch -M master   	 #当前分支所有超前master的提交
git format-patch -s SHA值 		 #此SHA值提交以后的所有PATCH
git format-patch -1 SHA值  		 #此SHA值的提交patch
git format-patch -n              #从master售前n个提交的内容
git format-patch SHA值           #从SHA值开始(不 g含SHA值当次)之前的N次提交,一次提交生成一个patch,时间越近,序数越大
git format-patch -n SHA值        #从SHA值开始(含SHA值当次)之前的N次提交
git format-patch HEAD^       #生成最近的1次commit的patch
git format-patch HEAD^^      #生成最近的2次commit的patch
git format-patch HEAD^^^         #生成最近的3次commit的patch
git format-patch HEAD^^^^     #生成最近的4次commit的patch
git format-patch <r1>..<r2>      #生成两个commit间的修改的patch(包含两个commit. <r1>和<r2>都是具体的commit号)
git format-patch <r1>            #生成某commit以来的修改patch(不包含该commit)
git format-patch --root <r1>     #生成从根到r1提交的所有patch
 
# 打patch
$ git am 0001-limit-log-function.patch              # 将名字为0001-limit-log-function.patch的patch打上
$ git am --signoff 0001-limit-log-function.patch    # 添加-s或者--signoff,还可以把自己的名字添加为signed off by信息,
                                                    #   作用是注明打patch的人是谁,因为有时打patch的人并不是patch的作者
$ git am ~/patch-set/*.patch                        # 将路径~/patch-set/*.patch 按照先后顺序打上
$ git am --abort                                    # 当git am失败时,用以将已经在am过程中打上的patch废弃掉
                                                    #   (比如有三个patch,打到第三个patch时有冲突,那么这条命令会
                                                    #   把打上的前两个patch丢弃掉,返回没有打patch的状态)
$ git am --resolved                                 # 当git am失败,解决完冲突后,这条命令会接着打patch

(注:git apply是另外一种打patch的命令,其与git am的区别是,git apply并不会将commit message等打上去,
打完patch后需要重新git add和git commit,而git am会直接将patch的所有信息打上去,而且不用重新git add
和git commit,author也是patch的author而不是打patch的人)
$ git apply --stat 0001-limit-log-function.patch    # 查看patch的修改内容(文件、行数)
$ git apply --check 0001-limit-log-function.patch   # 检查patch是否能够打上,如果没有任何输出,则说明无冲突,可以打上

查看指定文件的修改历史

# 查看近m次提交和近n次提交之间的修改文件:注意m比n更久
git diff --stat  HEAD~m HEAD~n
# 查看修改详细内容
git diff HEAD~m HEAD~n
# 这个指令可以看两次commit之间有哪些文件改动
git diff commit-id1 commit-id2 --stat
# 这个指令可以看两个分支之间有哪些文件差异
git diff branch1 branch2 --stat
# 这个指令可以看两个tag之间有哪些文件差异或者改动
git diff tag1 tag2 --stat
# 可以看到一个文件的改动,以commit的形式展现
git log  file
# 可以看到具体一个文件的历史改动记录
git log -p file

统计代码量

find . "(" -name "*.c" ")" -print | xargs wc -l
find . "(" -name "*.h" ")" -print | xargs wc -l
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git基础操作 的相关文章

  • 音乐播放器mplayer的简单使用

    mplayer 1 mplayer的安装2 mplayer的键盘模式基本控制键 xff1a 3 Slave模式 xff1a 启动方法一 xff1a 在终端下敲命令来启动mplayerMplayer 在slave模式下常用的命令 xff1a
  • AJAX和CGI 技术的应用

    AJAX xff0c CGI 一 AJAX1 AJAX的概述AJAX局部更新网页流程图 xff1a 异步流程 xff1a 2 AJAX的通信过程2 1 创建xmlHttpRequest对象2 2 设置服务器响应的回调函数标准的XMLHttp
  • W25QXX使用教程

    W25QXX是华邦公司生产的一块FLASH储存芯片 那W25Q256为例 xff1a 驱动方式 xff1a 单路双路四路SPI QSPI xff1b 擦写周期 xff1a 10W次 支持电压 xff1a 2 7 3 6V 频率 xff1a
  • QT串口通信

    QT串口的使用 1 添加头文件2 串口通信的7个步骤3 发送接收数据 1 添加头文件 span class token macro property span class token directive keyword include sp
  • Qt存储图片到数据库&&从数据库读取图片

    使用Qt将图片存储到sqlite my sql span class token double colon punctuation span span class token function my sql span span class
  • SQL常用语句大全

    创建表and插入数据 课程表 span class token keyword create span span class token keyword database span stuinfo span class token comm
  • 2020-08-21 多路复用TCP双向通信

    多路复用TCP双向通信 首先说一下多路复用 多路的作用 xff1a 监测文件描述符的状态变化 监测文件描述符是否有数据可读写 状态变化 xff1a 有数据可读 xff0c 有数据可写 xff0c 异常 有可能需要监测多个文件描述符 多个文件
  • ros中gmapping建图

    准备 1之前在github上下载的双轮差速小车中有该小车的gmapping和键盘控制的文件可以直接用 2如果之前安装的不是ros的full版本还需要下载gmapping功能包 sudo apt get install ros indigo
  • ros导航仿真——定位与路径规划

    准备 之前在github上下载的差速双轮小车不仅有其对应的gmapping还有amcl和move base xff0c 其中amcl用于定位 xff0c move base 用于路径规划 首先启动小车 roslaunch diff whee
  • arm底层通讯接口之uart

    1 目的 写这篇博文的主要目的就是让其他初学者能够更快的理解 掌握uart串口通讯 xff0c 在学习底层接口通讯的时候 xff0c 我们要带着这么几个问题 xff1a 1 xff09 什么是uart 2 xff09 uart有什么用 3
  • ros中Odom话题与odom坐标系的理解

    odom话题发表的是odom坐标系到base link之间的转换关系 xff0c 以及机器人的速度 其中base like是机器人本体坐标系 xff0c 与机器人中心重合 xff0c 所以odom坐标系到base link之间的转换关系也就
  • 多机器人导航与编队(一)

    多个机器人中让领导者导航 xff0c 相比于单个机器人导航需要修改的参数如下 主要是多机器人中的领导者与单个机器人发布的话题名称不一样 小车启动文件设置与简化 1设置 在小车的xacro文件的diff插件中添加 span class tok
  • 多机器人导航与编队(二)

    小车导航文件设置 导航分为两部分 xff1a 定位amcl和规划move base xff08 我自己的项目 导航对应ares1 maze2 amcl launch里面包含ares1 amcl launch xml 对应定位amcl xff
  • 多个小车相同功能的节点编写以及launch文件相关设置

    对于n个小车的相同功能 xff0c 写cpp 1写n个cpp 2写1个cpp xff0c 将n个小车的内容集中到一起 3写1个cpp xff0c 长度与单个相同 在launch文件中启动n个这样相同的节点 传入n个不同的参数 关于launc
  • ROS 多机器人导航salm中的问题

    ros中slam理解 在ROS中 xff0c 进行导航需要使用到的三个包是 xff1a xff08 1 xff09 move base xff1a 根据参照的消息进行路径规划 xff0c 使移动机器人到达指定的位置 这个路径规划包括全局路径
  • 一文读懂串口(波形分析、起始位、数据位、停止位、空闲位)

    串口 一 串口 xff08 串行接口 xff09 二 异步串口 xff08 以下统称串口 xff09 三 重要参数1 波特率2 报文格式2 1 起始位2 2 数据位2 3 奇偶校验位2 4 停止位2 5 空闲位 四 波形1 具体连接2 波形
  • #学习笔记 keil环境下单片机模块化编程的方法

    1 选择 add new item to group 建立一个 c文件 xff0c 一个 h文件 xff0c 并且名字一致 2 h文件的写法 xff08 1 xff09 h文件中要有首位两段语言 例如 ifndef HEARTRATE H
  • 【Drone】航模遥控系统各协议简介

    最近学习了无人机的一些知识 xff0c 在关于遥控系统这部分的各种协议看的有些头大 xff0c 人都晕了 看了一些资料后终于大概理解了这套系统中那些一团乱麻般的各协议的意义 xff0c 大致总结一下 图一 遥控系统组成 这里参考FPV帮装机
  • C语言获取当前的工作路径

    在C语言中获取当前的工作路径的方法一般是用内置函数为 xff1a DWORD GetModuleFileName HMODULE hModule LPTSTR lpFilename DWORD nSize 函数的参数说明 xff1a hMo
  • C/C++的指针传递和引用传递

    相信你遇到过指针传参 值传参 引用传参 xff0c 这三个关系足够让你头脑爆炸 xff0c 搞不清楚三者的区别 但是恭喜你 xff0c 你看到了这篇文章 xff0c 小编保证你看后茅塞顿开 xff0c 一下子就顺畅了 首先 xff0c 我们

随机推荐

  • #define、typedef 和 using之间的联系和区别

    目录 一 define 1 含义 2 用处 1 条件编译 2 解宏 3 文件包含 二 typedef 1 含义 2 用处 1 数据类型别名 2 指针别名 3 结构体别名 4 与平台无关的数据类型 三 using 1 含义 2 用处 1 权限
  • C++四种cast的详细介绍

    目录 一 static cast 1 基本数据类型转换 2 指针和void指针的转换 3 父类和子类之间的转换 二 dynamic cast 三 const cast 1 加上const 2 去掉const xff08 1 xff09 co
  • C++内存模型简述

    目录 一 什么是内存模型 二 内存的分类 三 各分区例程 1 全局 静态存储区 2 常量区 3 栈 xff08 Stack xff09 区域 4 堆 xff08 Heap xff09 区域 四 堆和栈的区别 五 堆和自由存储区的区别 1 m
  • Eclipse的介绍和插件使用

    目录 一 Eclipse的介绍 二 快捷方式 三 常用快捷键 四 插件开发 五 插件安装 第一种 xff1a 直接复制法 第二种 xff1a 使用link文件法 第三种 xff1a 使用eclipse自带图形界面安装 第四种 xff1a 使
  • 动态时间规整算法——DTW

    没有做过机器学习的小伙伴们对这个算法应该不是特别的了解 xff0c 因为机器学习经常会用到这个算法 再将这个算法之前 xff0c 我们先看一下初中的知识点 欧几里得距离 在讲解动态时间规整算法 xff08 Dynamic Time Warp
  • C++ 中的基本输入/输出

    C 43 43 附带的库为我们提供了许多执行输入和输出的方法 在 C 43 43 中 xff0c 输入和输出以字节序列或更通常称为流的形式执行 输入流 xff1a 如果字节流的方向是从设备 xff08 例如 xff0c 键盘 xff09 到
  • 单例设计模式

    单例设计模式是一种经典的面向对象设计模式 xff0c 它允许在一个应用程序中只创建一个实例对象 xff0c 以便在整个应用程序中共享该对象的状态和行为 单例模式通常用于管理应用程序级别的资源 xff0c 例如数据库连接 线程池 配置对象等
  • 代理设计模式

    一 概述 代理设计模式是一种结构型设计模式 xff0c 它允许在一个对象和其它对象之间添加一个代理对象 xff0c 以控制对原始对象的访问 代理对象通常在访问原始对象之前或之后执行一些额外的操作 xff0c 例如记录日志 控制访问权限 缓存
  • C++线程入门:轻松并发编程

    在现代计算机应用程序中 xff0c 我们经常需要处理并发任务 xff0c 这就需要使用多线程来实现 C 43 43 是一种功能强大的编程语言 xff0c 提供了丰富的线程支持 xff0c 使得并发编程变得相对容易 C 43 43 线程是一种
  • 中断与DMA

    中断 Cortex M3256 个优先级和 128 个抢占级悬起pending 中断中断的类型中断结构 DMA通道映射源传输和目标传输寄存器中断状态寄存器和中断标志清除寄存器通道x配置DMA stream x configuration r
  • keil编译时候出现function “ ” declared implicitly的解决方法

    在警告信息function declared implicitly双引号中的 表示的是所调用函数 xff0c 在调用该函数的前加 extern 声明即可
  • 2022年高教社杯全国大学生数学建模国赛B题思路详解

    1 比赛报名与思路解析 xff08 持续更新750967193 xff09 2 比赛时间 xff1a 2022年9月15日18点到2022年9月18日20点 如下为B题思路 xff1a 先贴题目 xff1a 如下是初步分析 xff1a 无人
  • 旋转矩阵、欧拉角之间转换

    学习过程中涉及欧拉角和旋转矩阵的转换 xff0c 索性整理学习一下欧拉角四元数和旋转矩阵的概念以及matlab中的互相转换 本文摘自各大课本 xff0c 博客 xff0c 自己学习整理使用 xff0c 侵删 MATLAB矩阵乘法从左到右依次
  • ROS中C++ boost编程,类内回调函数

    首先熟悉boost bind 定义如下函数 xff1a span class token keyword int span span class token function f span span class token punctuat
  • 理解头文件(.h)、库文件(.lib)、和动态链接库文件(.dll),Fortran中的预处理及Fortran中function的简单使用

    文章目录 问题来源我的问题头文件 库文件和动态链接库头文件 h库文件 lib动态链接库 dll三者的关系静态链接动态链接 初识 Fortran 预处理包含文件 include Fortran中function简单使用声明interface调
  • OpenCV计算机视觉库,Tensorflow深度学习框架

    OpenCV是计算机视觉库 xff0c 包含了大量的图像处理和计算机视觉的算法 xff0c 但是在机器学习方面明显不足 xff0c ML模块只有SVM xff0c MLP xff0c kNN等有限的几种算法 dnn模块也是调用别的框架 Te
  • 动态库和静态库

    概念 什么是库 库是写好的 xff0c 现有的 xff0c 成熟的 xff0c 可以复用的代码 现实中每个程序都要依赖很多基础的底层库 xff0c 不可能每个人的代码都从零开始 xff0c 因此库的存在意义非同寻常 本质上来说 xff0c
  • Linux 内核设计与实现 —— 1.内核简介

    文章目录 操作系统和内核简介内核包括 xff1a 内核与应用程序 xff1a 内核与硬件设备 xff1a 内核的运行模式 xff1a Linux内核与Unix内核比较单内核与微内核设计之比较Linux内核与Unix内核差异 操作系统和内核简
  • VIM基础操作

    方向键 xff1a hjkl输入 向后输入 xff1a a shift最前向前输入 xff1a i shift最后向下新生成一行输入 xff1a o shift上一行删掉当前字符并写入 xff1a s 撤销 xff1a u键盘重映设 vim
  • Git基础操作

    Git基础操作 仓库配置初始化仓库查看当前所在仓库修改远端仓库 代码提交基础操作tag操作删除最后N次提交储藏 代码管理分支操作patch操作查看指定文件的修改历史统计代码量 仓库配置 初始化仓库 1 xff0c 安装 sudo apt g