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 的方法来做进一步的探讨。你可…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...
TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?
在工业自动化持续演进的今天,通信网络的角色正变得愈发关键。 2025年6月6日,为期三天的华南国际工业博览会在深圳国际会展中心(宝安)圆满落幕。作为国内工业通信领域的技术型企业,光路科技(Fiberroad&…...
如何应对敏捷转型中的团队阻力
应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中,明确沟通敏捷转型目的尤为关键,团队成员只有清晰理解转型背后的原因和利益,才能降低对变化的…...
协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...
人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型
在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重,适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解,并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...
