GIT命令使用手册(详细实用版)
一、git常用操作参考
第一次提交完整步骤:
1.git init;
2.git add .
3.git commit -m "初始化"
4.git remote add origin https://github.com/githubusername/demo.git
5.git pull origin master
6.git push -u origin master(使用-u选项可以将本地的主分支与远程主分支关联起来,这样以后就可以直接使用git push和git pull而不需要指定远程仓库和分支。)
git config --list列出所有的Git配置选项
git config --global user.name "xxxxxxxxxxxxxx"
git config --global user.email "xxxxxxxxxxxxxx"
新增连接的远程仓库:git remote add origin <远程仓库URL>
修改连接的远程仓库:git remote set-url origin <远程仓库URL>
删除连接的远程仓库:git remote remove origin <远程仓库URL>
二、git常用命令参照表
序号 | 命令 | 描述 | 样例 |
---|---|---|---|
1 | git init | 初始化一个新的Git仓库 | |
2 | git clone | 将远程库克隆到本地 | git clone -b <想要克隆的远程仓库的分支名> <远程仓库地址> |
3 | git add | 将修改或新增的文件添加到Git暂存区 | |
4 | git commit | 将暂存区的文件提交到本地仓库 | |
5 | git push | 将本地的分支推送到远程仓库的分支(如果分支不存在则自动创建) 将本地指定分支推送到远程指定分支 | git push <远程仓库名称> <远程仓库分支名称> git push origin <本地指定分支名称>:<远程指定分支名称> |
6 | git pull | 将远程仓库的文件拉取到本地仓库 | |
7 | git branch | 查看当前本地分支 | |
8 | git branch -b | 创建一个新的本地分支 | |
9 | git branch -a | 列出所有本地和远程分支 | |
10 | git branch -m | 修改本地分支的名称 | git branch -m <旧分支名称> <新分支名称> |
11 | git merge | 将两个或多个分支合并到一起 | |
12 | git checkout | 切换到另一个分支或者恢复之前的提交 | git checkout <本地分支名称> |
13 | git checkout -b | 创建并切换到一个新的本地分支 | git checkout -b <新建本地分支名称> |
14 | git cherry-pick | 应用一个提交到当前分支 | git cherry-pick <commit id> |
15 | git remote | 管理远程仓库 | |
16 | git remote -v | 显示所有远程仓库的信息 | |
17 | git remote set-url | 设置或修改远程仓库的URL | |
18 | git remote remove | 移除一个远程仓库 | git remote rm <仓库名称> |
19 | git tag | 创建、列出或删除标签 | |
20 | git cz | 使用commitzen 这样的工具,它提供了交互式的提交信息输入方式,有助于生成格式化良好的提交消息 | |
21 | git status | 显示当前分支的文件状态,包括未跟踪文件、未提交的更改和冲突 | |
22 | git diff | 显示暂存区和工作目录之间的差异 | |
23 | git log | 显示提交日志,包括提交历史和每次提交的详细信息 | |
24 | git reset | 重置当前分支到指定的状态,可以是到某个提交、某个标签或某个commit的哈希值 | |
25 | git revert | 创建一个新的提交,这个提交的内容是撤销某个指定提交的更改 | |
26 | git branch -d/-D | 删除一个分支,-D 选项用于强制删除(即当分支有未合并的提交时) | |
27 | git checkout -- <file> | 丢弃工作目录中指定文件的所有本地更改 | |
28 | git rm | 从工作目录和暂存区中删除文件 | |
29 | git mv | 重命名文件,同时更新工作目录和暂存区 | |
30 | git show | 显示某个提交的详细信息,包括提交的日志、差异和文件内容 | |
31 | git stash | 保存当前的工作状态到一个栈,然后清空工作目录和暂存区 | |
32 | git stash apply | 应用以前保存的工作状态 | |
33 | git stash list | 列出所有保存的工作状态 | |
34 | git stash pop | 应用并移除最近保存的工作状态 | |
35 | git bisect | 帮助我们找到引入错误的提交 | |
36 | git grep | 在提交历史或当前分支中搜索文本 | |
37 | git gc | 执行垃圾回收,清理不再使用的对象 | |
38 | git reflog | 显示对引用(分支、标签等)所做的所有更改的历史记录 | |
39 | git fetch | 拉取最新的代码和分支信息,将远程分支拉取到本地新建的分支 | git fetch <远程仓库名称> <远程分支名称>:<本地分支名称> |
三、常见问题及解决方案:
问题一:拉取报错
$ git pull origin master From gitee.com:loris-liu/ncn* branch master -> FETCH_HEAD fatal: refusing to merge unrelated histories
本地仓库和远程仓库是独立的,它们没有共同的提交历史。你的本地分支是新创建的,并且没有提交历史。
在命令后面使用 --allow-unrelated-histories 标志来允许合并不相关的历史。问题二:历史提交中单个文件过大解决
// 第一步查到该文件: git rev-list --objects --all | grep 438f2335a16ab8239d709089b8463d2069a1 // 或者: git rev-list --all | xargs -I{} git ls-tree --full-tree -r {} | grep 438f2335a16ab8239d709089b8463d2069a17637 // 第二步重写: git filter-repo --path screen.zip --path-rename '' --invert-paths // 或者: git filter-branch --tree-filter 'rm -f screen.zip' HEAD
问题三:撤销上一次合并
1.回滚到之前的提交
第一步:使用 git reflog 查看历史记录,找到合并操作之前的提交哈希值:git reflog
找到您想要回滚到的提交前的提交哈希值。
第二步:git reset 命令回滚到之前的提交:git reset --hard <commit-hash>2.撤销最近的合并操作
git reset --hard ORIG_HEAD
将当前分支回退到最近的一次提交,并清除工作目录和暂存区中的所有本地修改,让你的工作区变得和最近的提交完全一样
解释:git reset --hard HEAD
// git reset 是用来移动当前分支的 HEAD 指针的命令。
// --hard 选项表示彻底重置。它会重置工作目录和暂存区,丢弃所有未提交的更改。
// HEAD 是指向当前分支最新提交的指针。3.撤销上一次commit
git reset --soft HEAD^
4.完全撤销上一次commit
git reset --hard HEAD^
问题四:仓库clone优化(只克隆最新的一个提交)
git clone --depth=1 <远程仓库地址>
--depth=1: 这是一个选项,表示只克隆最新的一个提交。这样可以减少克隆所需的时间和空间,因为你只获取最新的提交历史,而不是整个历史记录。
问题五:测试是否连通 ssh -T git@github.com
第一种方法:关闭SSl验证: git config --global http.sslVerify "false" git config --global https.sslVerify "false"第二种方法:关闭全局代理: git config --global --unset http.proxy git config --global --unset https.proxy
PS:连接github超时可查看一下博文:
解决GitHub总是超时连接不上的问题_github超时-CSDN博客
问题六:使用一次新的commit,替代上一次提交
git commit --amend -m [message]
如果代码没有任何新变化,则用来改写上一次commit的提交信息
问题七:撤销git cherry-pick操作
git cherry-pick --abort
问题八:查看代码贡献量
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --format='%aN' --since="2023-01-01" --until="2023-12-31" --numstat | awk '{add += $1; subs += $2; loc += $1 - $2} END {print add, subs, loc}'; done
这个命令会输出自2023年1月1日至2023年12月31日期间每个贡献者的添加(additions)、删除(deletions)和总行数(loc)。
解释:
git log --format='%aN' 列出提交的作者姓名。
sort -u 对作者姓名进行排序并去重。
while read name; do ... done 循环遍历每个作者姓名。
echo -en "$name\t" 输出作者姓名,并添加一个制表符进行对齐。
git log --author="$name" 筛选出指定作者的提交。
--since 和 --until 参数限定时间范围。
--numstat 选项使得git log输出每个文件的添加和删除行数。
awk 用于累加每个作者的代码行数统计。
相关文章:
GIT命令使用手册(详细实用版)
一、git常用操作参考 第一次提交完整步骤: 1.git init; 2.git add . 3.git commit -m "初始化" 4.git remote add origin https://github.com/githubusername/demo.git 5.git pull origin master 6.git push -u origin master(使用-u选项可以将…...
数据分析实战—IMDB电影数据分析
1.实战内容 1.加载数据到movies_df,输出前5行,输出movies_df.info(),movies_df.describe() # (1)加载数据集,输出前5行 #导入库 import pandas as pd import numpy as np import matplotlib import matplotlib.pyplo…...
【SQL/MySQL 如何使用三种触发器】SQL语句实例演示
触发器介绍 – 触发器是与表有关的数据库对象,指在insert/update/delete之前(BEFORE)或之后(AFTER),触发并执行触发器中定义的SQL语句集合。 – 使用别名OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在触发器还只…...
社区团购管理系统(源码+数据库)
355.基于SpringBoot的社区团购管理系统,系统包含两种角色:管理员、用户,系统分为前台和后台两大模块,主要功能如下 二、项目技术 编程语言:Java 数据库:MySQL 项目管理工具:Maven 前端技术:Vue …...
时钟分频模块
实现时钟的二分频,四分频 1.时钟分频模块: module clk_div(input clk, //50Mhzinput rst_n,input [15:0] lcd_id,output reg lcd_pclk);reg clk_25m; reg clk_12_5m; reg …...
linux ipmitool配置机器的BMC(服务器管理后台)
前置:mgnt口和网卡1连接入内网,并分配静态ip 1. 安装 ipmitool Debian/Ubuntu: sudo apt-get update sudo apt-get install ipmitool CentOS/RHEL: sudo yum install ipmitool2. 配置 BMC 的 IP 地址 #打印当前ipmi 地址配置信息。 ipmitool lan p…...
【Springboot知识】Redis基础-springboot集成redis相关配置
文章目录 1. 添加依赖2. 配置Redis连接3. 配置RedisTemplate(可选)4. 使用RedisTemplate或StringRedisTemplate5. 测试和验证 集群配置在application.properties中配置在application.yml中配置 主从配置1. 配置Redis服务器使用配置文件使用命令行 2. 配置…...
【数据结构】八大排序
目录 一、直接插入排序 二、希尔排序 三、选择排序 四、堆排序 五、冒泡排序 六、快速排序 七、归并排序 八、计数排序 稳定性结论 稳定性:排序后相同元素之间的相对顺序是否保持不变。 一、直接插入排序 基本思想:通过构建有序序列ÿ…...
mmdetection:图片推理以及将预测标签转换为YOLO格式标签
本文记录了使用 mmdetection 进行图片推理,并将推理结果坐标格式转换为yolo格式保存在txt中的代码。 文章目录 一、图片推理二、批量处理 一、图片推理 一个图片推理的demo。 import os import mmcv from mmdet.apis import init_detector, inference_detector fr…...
CV-OCR经典论文解读|An Empirical Study of Scaling Law for OCR/OCR 缩放定律的实证研究
论文标题 An Empirical Study of Scaling Law for OCR OCR 缩放定律的实证研究 论文链接: An Empirical Study of Scaling Law for OCR论文下载 论文作者 Miao Rang, Zhenni Bi, Chuanjian Liu, Yunhe Wang, Kai Han 内容简介 本论文在光学字符识别…...
从混沌到秩序:Python的依赖管理工具分析
Python 的依赖管理工具一直没有标准化,原因主要包括: 历史发展的随意性:Python发展早期对于依赖管理的重视程度不足,缺乏从一开始就进行统一规划和设计的意识 社区的分散性:Python社区庞大且分散,众多开发…...
【系统】Windows11更新解决办法,一键暂停
最近的windows更新整的我是措不及防,干啥都要关注一下更新的问题,有的时候还关不掉,我的强迫症就来了,非得关了你不可! 经过了九九八十一难的研究之后,终于找到了一个算是比较靠谱的暂停更新的方法&#x…...
小红书关键词搜索采集 | AI改写 | 无水印下载 | 多维表格 | 采集同步飞书
小红书关键词搜索采集 | AI改写 | 无水印下载 | 多维表格 | 采集同步飞书 一、下载影刀: https://www.winrobot360.com/share/activity?inviteUserUuid595634970300317698 二、加入应用市场 https://www.yingdao.com/share/accede/?inviteKeyb2d3f22a-fd6c-4a…...
【原生js案例】前端封装ajax请求及node连接 MySQL获取真实数据
上篇文章,我们封装了ajax方法来请求后端数据,这篇文章将介绍如何使用 Node.js 来连接 MySQL,并对数据库进行操作。 实现效果 代码实现 后端接口处理 const express require("express"); const connection require("../da…...
Ubuntu将深度学习环境配置移植到新电脑
这里默认新电脑已经安装好了conda、CUDA这些,可以直接创建新的虚拟环境。 参考链接: https://blog.csdn.net/Chujun123528/article/details/143788565https://blog.csdn.net/qq_41779275/article/details/122868946https://blog.csdn.net/YajunLin/art…...
vue基础作业实验十
vue基础作业实验十 实验要求案例要点:代码以及思考style部分Vue.js 部分Vue 实例部分 这段代码是一个基于 Vue.js 的静态页面,功能包括商品品牌的添加、删除和搜索。 实验要求 一、实验的基本内容 (1)Vue模板语法。 (…...
冒泡排序(JAVA)
package com.guangyunl.f_array;import java.util.Random; import java.util.Scanner;// 数组的冒泡排序 // 冒泡排序法是采用数组中相邻元素进行比较换位 public class Demo02Bubble {public static void main(String[] args) {Demo02Bubble demo02Bubble new Demo02Bubble()…...
如何测量分辨率
一、什么是分辨率? 分辨率指的是分清物体细节的能力。分辨率是一个成像系统还原空间频率的能力。一些人只是简单的用分辨率去描述极限分辨率,但是相机在在不同的对比度的情况下还原低,中和高频率的能力,也可以显示全面综合的信息。…...
【Mysql索引优化】索引优化的最佳实现
文章目录 【Mysql优化】索引优化的最佳实现1. 全值匹配:索引的最佳使用方式2. 最左前缀法则3. 尽量使用覆盖索引:优化查询性能。减少 select \* 语句4. 范围查询优化5. 不在索引列上做任何操作(计算、函数、(自动or手动࿰…...
centos使用mkisofs构建无人值守镜像(附官方学习文档)
安装mkisofs yum install -y mkisofs 挂载镜像并确认 并拷贝文件(/mnt 为我们的工作目录) 1.3 准备自动应答文件(保存为 ins.ks) 修改系统引导 实际上就是添加inst.ks 这个引导参数 传递应答文件 传统模式引导 UEFI模式引导 打包镜像 通用选项 -v:启用详细模式&a…...
Python获取当前系统中可用的串口设备
import serial.tools.list_portsdef checkDevice(self):port_data []for port in serial.tools.list_ports.comports():port_data.append(port.description)if port_data:for devInfo in port_data:self.toolLogPrinting(可用设备 devInfo)RET Trueelse:self.toolLogPrinti…...
基于蓝牙通信的手机遥控智能灯(论文+源码)
1.系统设计 灯具作为人们日常生活的照明工具为人们生活提供光亮,本次基于蓝牙通信的手机遥控智能灯设计功能如下: (1)用户可以通过蓝牙通信模块的作用下,在手机端遥控切换智能灯不同的工作模式; &#x…...
【Prometheus 】【实战篇(五)】深入解析 Prometheus 监控指标类型:Counter、Gauge、Histogram 和 Summary
Prometheus 提供了四种核心的指标类型,分别是 Counter(计数器)、Gauge(仪表)、Histogram(直方图)和 Summary(摘要)。这些指标类型在客户端库中有具体的使用说明ÿ…...
进程间通信方式---消息队列(System V IPC)
进程间通信方式—消息队列(System V IPC) 文章目录 进程间通信方式---消息队列(System V IPC)消息队列1.消息队列进程间通信原理2.msgget 系统调用3.msgsnd 系统调用4.msgrcv 系统调用5.msgctl 系统调用6.函数使用案例7.实现生产者…...
【笔记】深度学习模型评估指标
推荐链接: (0)多分类器的评价指标 (1)泛化误差的评价方法:【机器学习】模型评估与选择(留出法、交叉验证法、查全率、查准率、偏差、方差) (2)机器学习&…...
Python语法之列表(包含检测练习)
看完后有没有学会呢?主页有一个列表知识小检测^V^ 关注我更新更多初学实例 主页还有字典的,这个系列会持续更新 列表 列表中的查找数据(index,count,len) 一 列表的格式 【数据1,数据2, 】 index():返回指定数据…...
气象与旅游之间的关系,如果借助高精度预测提高旅游的质量
气象与旅游之间存在密切的关系,天气条件直接影响旅游者的出行决策、旅游体验和安全保障。通过高精度气象预测技术,可以有效提升旅游质量,为游客和旅游行业带来显著的优势。 1. 提高游客出行决策效率 个性化天气服务:基于高精度气象预测,旅游平台可以提供个性化的天气预报服…...
JVM(Java虚拟机)分区详情
JVM(Java虚拟机)运行时数据区是Java虚拟机的内存管理模型,它包括了多个关键的内存区域,这些区域各自承担着不同的职责,共同支持着Java程序的运行。以下是JVM运行时数据区的详细介绍: 一、整体概述 JVM运行时数据区按照线程占用的情况可以分为两类:线程共享和线程独享。…...
计算机组成原理的学习笔记(2)--数据表示与运算·其二 逻辑门和加减乘
学习笔记 前言 本文主要是对于b站尚硅谷的计算机组成原理的学习笔记,仅用于学习交流。 1. 逻辑门 逻辑门是数字电路中用于执行基本逻辑运算的组件。每种逻辑门都有独特的功能和特性: 与门(AND Gate): 符号࿱…...
数据科学与SQL:如何利用本福特法则识别财务数据造假?
目录 0 本福特法则介绍 1 数据准备 2 问题分析 步骤1:提取首位数: 步骤2:计算首位数字的实际频率分布 <...
Mapbox-GL 的源码解读的一般步骤
Mapbox-GL 是一个非常优秀的二三维地理引擎,随着智能驾驶时代的到来,应用也会越来越广泛,关于mapbox-gl和其他地理引擎的详细对比(比如CesiumJS),后续有时间会加更。地理首先理解 Mapbox-GL 的源码是一项复…...
常见网络命令
个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 常见网络命令 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 Ping 命令 …...
Ubuntu上如何部署Nginx?
环境: Unbuntu 22.04 问题描述: Ubuntu上如何部署Nginx? 解决方案: 在Ubuntu上部署Nginx是一个相对简单的过程,以下是详细的步骤指南。我们将涵盖安装Nginx、启动服务、配置防火墙以及验证安装是否成功。 1. 更新…...
微店商品详情API:获取商品信息的高效途径
引言 在电商领域,获取商品详情是开发者和商家进行数据分析、精准营销和店铺管理的重要一环。微店作为知名的电商平台,提供了丰富的API接口供开发者使用,其中商品详情API接口尤为关键。本文将详细介绍如何使用微店API接口获取商品详情&#x…...
编程语言注释的方式
Python 单行注释 # 这是一个单行注释多行注释(本质上是跨行字符串) 这是一个多行注释的示例。它可以跨越多行。 """这是一个多行注释的示例。它可以跨越多行。 """ C 单行注释 // 这是一个单行注释 多行注释 /*这是…...
抓住节假日的机会调整ASO优化策略
节日季和全年的特殊活动为提高应用程序的知名度和下载量提供了独特的机会。忽略节假日意味着错过这些有限的扩大用户群的机会。相反,调整您的应用商店优化 (ASO) 策略以适应这些高流量时段至关重要。以下是如何在假期期间最大限度地提高应用程序的性能。 一、为什么…...
AOI外观缺陷检测机
主要功能: 快速检测产品装配缺陷,包括螺丝、元器件、端子排线、二维码、一维条码、识别读码、产品外观 Logo缺陷以及产品标签、字符缺陷检测等产品的缺陷检测。 设备优势:1.采用轻型可移动支架,可以快速对接产线工艺工序&am…...
BERT模型
目录 1.BERT介绍2.BERT框架2.1 Embedding2.2 Transformer Encoder 3.BERT可视化4.注意力六种模式4.1 模式1:注意下一个词4.2 模式2:注意前一个词4.3 模式3:注意相同或相关的单词4.4 模式4:注意“其他”句子中相同或相关词4.5 模式…...
Ubuntu22.04上安装esp-idf
一、安装准备# 建议使用Ubuntu 20.04 或 Ubuntu 22.04 操作系统 为了在 Ubuntu 22.04 中使用 esp-idf,需要安装一些依赖包 sudo apt-get install git wget flex bison gperf python3\python3-pip python3-venv cmake ninja-build ccache\libffi-dev libssl-dev dfu…...
Synchronous Serial Port 协议详解
1、简介 Synchronous Serial Port (SSP) ,基于下图文档的设计标准 1.1、包含3种数据帧格式: a Motorola SPI-compatible interface(以下简称SPI)a Texas Instruments synchronous serial interface(简写SSIÿ…...
BSM和BMS什么区别?
BSM BSM(Battery System Manager)是指用于管理和控制电动车辆的电池系统的设备,其功能包括监测电池状态、控制充放电过程、保护电池安全等。 BMS BMS(Battery Management System)是指用于监测、控制和保护电池组的设…...
基于海思soc的智能产品开发(巧用mcu芯片)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 对于开发车规级嵌入式软件的同学来说,socmcu这样的组合,他们并不陌生。但是传统的工业领域,比如发动机、医疗或…...
R语言混合模型回归GBTM群组轨迹模型绘图可视化研究
全文链接:https://tecdat.cn/?p38581 在回归分析的广袤领域中,面对具有多条未知函数线的复杂数据时,传统方法常常捉襟见肘。混合模型作为一种强有力的分析手段应运而生,其在处理此类复杂情境时展现出独特的优势与潜力(…...
Flink2.0未来趋势中需要注意的一些问题
手机打字,篇幅不长,主要讲一下FFA中关于Flink2.0的未来趋势,直接看重点。 Flink Forward Asia 2024主会场有一场关于Flink2.0的演讲,很精彩,官方也发布了一些关于Flink2.0的展望和要解决的问题。 1.0时代和2.0时代避免…...
android recycleview 中倒计时数据错乱
原因 recyceleview 当页面划出屏幕外后,默认会有两条进入缓存区,这些item的结构会被保存,数据被清除,方便其他新进入屏幕的数据复用item,超过两条外的item会进入缓存池被完全销毁重用。 如果我们的页面上有editText 或…...
康冠科技嵌入式面试题及参考答案
LCD 驱动你自己做了哪些内容? 在 LCD 驱动开发中,首先是硬件层面的理解。需要仔细研究 LCD 的数据手册,明确其引脚定义,包括电源引脚、数据引脚、控制引脚等。比如,对于常见的 RGB 接口 LCD,要清楚哪几个引脚是用于传输红、绿、蓝三种颜色的数据,以及像 VSYNC(垂直同步…...
FreeRTOS的任务调度
1.启动任务调度器 vTaskStartScheduler void vTaskStartScheduler( void ) { BaseType_t xReturn;/* Add the idle task at the lowest priority. */#if ( INCLUDE_xTaskGetIdleTaskHandle 1 ){/* Create the idle task, storing its handle in xIdleTaskHandle so it canbe …...
scala中模式匹配的应用
package test34object test6 {case class Person(name:String)case class Student(name:String, className:String)// match case 能根据 类名和属性的信息,匹配到对应的类// 注意:// 1 匹配的时候,case class的属性个数要对上// 2 属性名不需…...
基于Springboot人口老龄化社区服务与管理平台【附源码】
基于Springboot人口老龄化社区服务与管理平台 效果如下: 系统登陆页面 系统主页面 社区信息页面 社区文件页面 活动报名页面 走访任务管理页面 社区资讯页面 老人信息管理页面 研究背景 随着社会老龄化的加剧,老年人口比例逐渐增加,对老年…...
前端生成docx文档、excel表格、图片、pdf文件
一、前端将页面某区域内容下载为word文档:html-to-docx、file-saver插件组合使用 import HTMLtoDOCX from html-to-docx; import { saveAs } from file-saver;const exportTest async () > {const fileBuffer await HTMLtoDOCX(<h2>文件标题</h2>&…...