git 常用命令有哪些

Git 是我们开发工作中使用频率极高的工具,下面总结下他的基本指令有哪些,顺便温习一下。
前言
一般项目中长存2个分支: 主分支(master) 和开发分支(develop)
项目存在三种短期分支 :功能分支(feature branch) 补丁分支(hotfix branch) 预发分支(release branch)一旦完成开发,它们就会被合并进develop或master,然后被删除。
虽然是主分支和分支,却是平级关系,develop可以理解为开发库,master为生产库。
一、初始化
# 初始化本地仓库,在当前目录下生成 .git 文件夹git init# 查看当前分支状态
git status
二、Git 配置
# 查看配置信息
git config <--local | --global | --system> -l // --local:仓库级,--global:全局级,--system:系统级# 查看当前生效的配置信息
git config -l# 编辑配置文件
git config <--local | --global | --system> -e# 添加配置项
git config <--local | --global | --system> --add <name> <value># 获取配置项
git config <--local | --global | --system> --get <name># 删除配置项
git config <--local | --global | --system> --unset <name># 配置提交记录中的用户信息
git config --global user.name <用户名>git config --global user.email <用户邮箱># 更改Git缓存区的大小,如果提交的内容较大,默认缓存较小,提交会失败,缓存大小单位:B,例如:524288000(500MB)
git config --global http.postBuffer <缓存大小>
三、查看日志log
# 打印所有的提交记录
git log // Q退出记录# 打印从第一次提交到指定的提交的记录
git log <commit ID># 打印指定数量的最新提交的记录
git log -<指定的数量> // 例如 git log -3 打印最近3条记录# 显示指定作者的提交历史
git log --author=zhangsan# 查看指定文件的提交历史
git log <file_name> // 例如 git log abc.vue# 以图形形式显示提交历史
git log --graph
四、分支(branch)操作
# 列出本地的所有分支,当前所在分支以 "*" 标出
git branch# 列出本地的所有分支并显示最后一次提交,当前所在分支以 "*" 标出
git branch -v# 创建新分支
git branch <分支名># 修改分支名称
git branch -m <oldName> <newName># 强制修改分支名称
git branch -M <oldName> <newName># 删除指定的本地分支
git branch -d <分支名称># 强制删除指定的本地分支
git branch -D <分支名称>
五、切换(checkout)分支
# 切换到已存在的指定分支
git checkout <分支名称># 创建并切换到指定的分支,保留所有的提交记录
git checkout -b <分支名称># 创建并切换到指定的分支,删除所有的提交记录
git checkout --orphan <分支名称># 替换掉本地的改动,新增的文件和已经添加到暂存区的内容不受影响
git checkout <文件路径>
六、克隆(clone)分支
# 默认在当前目录下创建和版本库名相同的文件夹并下载版本到该文件夹下
git clone <远程仓库的网址># 指定本地仓库的目录
git clone <远程仓库的网址> <本地目录># -b 指定要克隆的分支,默认是master分支
git clone <远程仓库的网址> -b <分支名称> <本地目录>
七、提交(commit)操作
# 把暂存区中的文件提交到本地仓库
git commit# 把暂存区中的文件提交到本地仓库中并添加描述信息
git commit -m "<提交的描述信息>"# 修改上次提交的描述信息
git commit --amend
八、合并(merge)操作
# 把指定的分支合并到当前所在的分支下,并自动进行新的提交
git merge <分支名称># 把指定的分支合并到当前所在的分支下,不进行新的提交
git merge --no-commit <分支名称># 合并分支出现冲突时,取消合并,一切回到合并前的状态
git merge --abort
九、还原(reset)提交记录
# 将 HEAD 的指向改变,撤销到指定的提交记录,文件未修改
git reset <commit ID># 将 HEAD 的指向改变,撤销到指定的提交记录,文件也修改了
git reset --hard <commit ID># 回退3级
git reset --hard HEAD~3git push -f // 表示将目前自己本机的代码库推送到远端,并覆盖# 撤销某次提交
git revert <commit ID>git revert 与 git reset 最大的不同是,git revert 仅仅是撤销某次提交,而git reset会将撤销点之后的操作都回退到暂存区中
十、tag 操作
# 打印所有的标签
git tag# 切换到指定的标签
git checkout <标签名称># 查看标签的信息
git show <标签名称># 删除指定的标签
git tag -d <标签名称># 将指定的标签提交到远程仓库
git push <远程仓库的别名> <标签名称># 将本地所有的标签全部提交到远程仓库
git push <远程仓库的别名> –tags
十一、差异对比 diff
# 比较暂存区中的文件和上次提交时的差异
git diff --cached
git diff --staged# 查看从指定的版本之后改动的内容
git diff <commit ID># 比较两个分支之间的差异
git diff <分支名称> <分支名称>
十二、其他操作
# 列出已经存在的远程仓库
git remote -v# 从远程仓库获取最新版本
git pull# 合并分支出现冲突时,取消合并,一切回到合并前的状态
git merge --abort# 选择一个commit,合并进当前分支
git cherry-pick <commit ID># 如果代码没有任何新变化,则用来改写上一次commit的提交信息
git commit --amend -m <message>
十三、操作案例
# 克隆仓库
git clone http://www.xxx.com/abc.git# 查看分支当前状态
git status# 将文件添加到暂存区 .代表所有
git add .# 把暂存区中的文件提交到本地仓库
git commit -m '添加代码备注'# 将本地代码提交到远程仓库
git push
总结
1.养成提交描述的好习惯,一个好的提交信息可以方便他人理解您的修改,也有助于日后回顾项目历史;
2.在频繁修改的项目中,保持提交频率,避免许多修改集中在一个提交中,会增加冲突的风险;
3.使用分支开发习惯,将开发环境和生产环境分开,不要在master分支上直接进行开发;
4.当合并时出现冲突,应该及时处理。解决冲突后进行测试,确保代码正常工作;
5.每天开发完成时,更新您的本地仓库,确保与远程仓库保持同步。
6.在项目中添加适当的文档,包括README文件、代码注释和项目文档,以便团队成员能够理解项目的功能和结构。
相关文章:
git 常用命令有哪些
Git 是我们开发工作中使用频率极高的工具,下面总结下他的基本指令有哪些,顺便温习一下。 前言 一般项目中长存2个分支: 主分支(master) 和开发分支(develop) 项目存在三种短期分支 ࿱…...
算法leetcode|66. 加一(rust重拳出击)
文章目录 66. 加一:样例 1:样例 2:样例 3:提示: 分析:题解:rust:go:c:python:java: 66. 加一: 给定一个由 整数 组成的 非…...
MySQL备份Shell脚本
将此脚本添加到crontab计划中,自动留存最新的两份备份 #!/bin/bash # 数据库配置 DB_HOST"localhost" DB_USER"root" DB_PASS"Sxbdc123!#" DB_NAME"ww"# 备份目录 BACKUP_DIR"/opt/mysqlbak"# 备份文件名称 BA…...
Python批量查字典和爬取双语例句
最近,有网友反映,我的批量查字典工具换到其它的网站就不好用了。对此,我想说的是,互联网包罗万象,网站的各种设置也有所不同,并不是所有的在线字典都可以用Python爬取的。事实上,很多网站为了防…...
uni-app、H5实现瀑布流效果封装,列可以自定义
文章目录 前言一、效果二、使用代码三、核心代码总结前言 最近做项目需要实现uni-app、H5实现瀑布流效果封装,网上搜索有很多的例子,但是代码都是不够完整的,下面来封装一个uni-app、H5都能用的代码。在小程序中,一个个item渲染可能出现问题,也通过加锁来解决问题。 一、…...
vue echart3个饼图
概览:根据UI设计需要做3个饼图且之间有关联,并且处理后端返回的数据。 参考链接: echart 官网的一个案例,3个饼图 实现思路: 根据案例,把数据处理成对应的。 参考代码: 1.处理后端数据&am…...
LEARNING TO EXPLORE USING ACTIVE NEURAL SLAM 论文阅读
论文信息 题目:LEARNING TO EXPLORE USING ACTIVE NEURAL SLAM 作者:Devendra Singh Chaplot, Dhiraj Gandhi 项目地址:https://devendrachaplot.github.io/projects/Neural-SLAM 代码地址:https://github.com/devendrachaplot/N…...
item_search-ks-根据关键词取商品列表
一、接口参数说明: item_search-根据关键词取商品列表,点击更多API调试,请移步注册API账号点击获取测试key和secret 公共参数 请求地址: https://api-gw.onebound.cn/ks/item_search 名称类型必须描述keyString是调用key(http:…...
windows运行WPscan报错:无法打开库libcurl.dll
windows运行WPscan报错:无法打开库libcurl.dll 1.问题背景2.解决方案1.问题背景 在Windows上启动WPScan时: wpscan --url xxx.ru提示如下错误: Could not open library libcurl.dll: �� ������ ��������� ������. . Could not open library libcu...
web前端框架Javascript之JavaScript 异步编程史
早期的 Web 应用中,与后台进行交互时,需要进行 form 表单的提交,然后在页面刷新后给用户反馈结果。在页面刷新过程中,后台会重新返回一段 HTML 代码,这段 HTML 中的大部分内容与之前页面基本相同,这势必造成…...
Java多线程(1)---多线程认识、四种创建方式以及线程状态
目录 前言 一.Java的多线程 1.1多线程的认识 1.2Java多线程的创建方式 1.3Java多线程的生命周期 1.4Java多线程的执行机制 二.创建多线程的四种方式 2.1继承Thread类 ⭐创建线程 ⭐Thread的构造方法和常见属性 2.2.实现Runnable接口 ⭐创建线程 ⭐使用lambda表达…...
搭建Django+pyhon+vue自动化测试平台
Django安装 使用管理员身份运行pycharm使用local 1 pip install django -i https://pypi.tuna.tsinghua.edu.cn/simple 检查django是否安装成功 1 python -m django --version 创建项目 1 1 django-admin startproject test cd 切换至创建的项目中启动django项目…...
CASAIM自动化平面度检测设备3D扫描零部件形位公差尺寸测量
平面度是表面形状的度量,指示沿该表面的所有点是否在同一平面中,当两个表面需要连接在一起形成紧密连接时,平面度检测至关重要。 CASAIM自动化平面度检测设备通过搭载领先的激光三维测头和智能检测软件自动获取零部件高质量测量数据…...
PostgreSql pg_ctl 命令
一、概述 控制 PostgreSQL 服务的工具。 二、语法 --初始化数据库实例 pg_ctl init[db] [-D datadir] [-s] [-o initdb-options]--启动数据库实例 pg_ctl start [-D datadir] [-l filename] [-W] [-t seconds] [-s] [-o options] [-p path] [-c]--停止数据库实例 pg_ctl sto…...
MySQL中的MVCC具体指的是什么?
在MySQL中,MVCC是指多版本并发控制(Multi-Version Concurrency Control)。它是一种用于处理并发读写操作的数据库事务管理技术。 MVCC通过在数据库中维护多个版本的数据来实现并发控制,每个事务在执行期间看到的数据版本是确定性…...
Docker网络模型详解
目录 一、Docker网络基础 1、端口映射 使用-P选项时Docker会随机映射一个端口至容器内部的开放端口 使用docker logs查看Nginx的日志 查看映射的随机端口范围 2、使用-p可以指定要映射到的本地端口。 Local_Port:Container_Port : 端口映射参数中指定了宿主…...
如何打造属于自己的个人IP?
在当今信息爆炸的时代,个人 IP 已经成为人们在网络世界中的独特标签。无论是在职场上、创业中,还是在社交生活中,拥有个人 IP 的人都能脱颖而出,吸引更多的关注和机会。那么,如何打造属于自己的个人 IP 呢?…...
全网最全最细的jmeter接口测试教程以及接口测试流程详解
一、Jmeter简介 Jmeter是由Apache公司开发的一个纯Java的开源项目,即可以用于做接口测试也可以用于做性能测试。 Jmeter具备高移植性,可以实现跨平台运行。 Jmeter可以实现分布式负载。 Jmeter采用多线程,允许通过多个线程并发取样或通过…...
【Linux命令200例】whereis用于搜索以及定位二进制文件
🏆作者简介,黑夜开发者,全栈领域新星创作者✌,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆本文已收录于专栏:Linux命令大全。 🏆本专栏我们会通过具体的系统的命令讲解加上鲜…...
Elasticsearch:如何将整个 Elasticsearch 索引导出到文件 - Python 8.x
在实际的使用中,我们有时希望把 Elasticsearch 的索引保存到 JSON 文件中。在之前,我写了一篇管如何备份 Elasticsearch 索引的文章 “Elasticsearch:索引备份及恢复”。在今天,我们使用一种 Python 的方法来做进一步的探讨。你可…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?
在工业自动化持续演进的今天,通信网络的角色正变得愈发关键。 2025年6月6日,为期三天的华南国际工业博览会在深圳国际会展中心(宝安)圆满落幕。作为国内工业通信领域的技术型企业,光路科技(Fiberroad&…...
【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...
