当前位置: 首页 > news >正文

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 是我们开发工作中使用频率极高的工具&#xff0c;下面总结下他的基本指令有哪些&#xff0c;顺便温习一下。 前言 一般项目中长存2个分支&#xff1a; 主分支&#xff08;master&#xff09; 和开发分支&#xff08;develop&#xff09; 项目存在三种短期分支 &#xff1…...

算法leetcode|66. 加一(rust重拳出击)

文章目录 66. 加一&#xff1a;样例 1&#xff1a;样例 2&#xff1a;样例 3&#xff1a;提示&#xff1a; 分析&#xff1a;题解&#xff1a;rust&#xff1a;go&#xff1a;c&#xff1a;python&#xff1a;java&#xff1a; 66. 加一&#xff1a; 给定一个由 整数 组成的 非…...

MySQL备份Shell脚本

将此脚本添加到crontab计划中&#xff0c;自动留存最新的两份备份 #!/bin/bash # 数据库配置 DB_HOST"localhost" DB_USER"root" DB_PASS"Sxbdc123!#" DB_NAME"ww"# 备份目录 BACKUP_DIR"/opt/mysqlbak"# 备份文件名称 BA…...

Python批量查字典和爬取双语例句

最近&#xff0c;有网友反映&#xff0c;我的批量查字典工具换到其它的网站就不好用了。对此&#xff0c;我想说的是&#xff0c;互联网包罗万象&#xff0c;网站的各种设置也有所不同&#xff0c;并不是所有的在线字典都可以用Python爬取的。事实上&#xff0c;很多网站为了防…...

uni-app、H5实现瀑布流效果封装,列可以自定义

文章目录 前言一、效果二、使用代码三、核心代码总结前言 最近做项目需要实现uni-app、H5实现瀑布流效果封装,网上搜索有很多的例子,但是代码都是不够完整的,下面来封装一个uni-app、H5都能用的代码。在小程序中,一个个item渲染可能出现问题,也通过加锁来解决问题。 一、…...

vue echart3个饼图

概览&#xff1a;根据UI设计需要做3个饼图且之间有关联&#xff0c;并且处理后端返回的数据。 参考链接&#xff1a; echart 官网的一个案例&#xff0c;3个饼图 实现思路&#xff1a; 根据案例&#xff0c;把数据处理成对应的。 参考代码&#xff1a; 1.处理后端数据&am…...

LEARNING TO EXPLORE USING ACTIVE NEURAL SLAM 论文阅读

论文信息 题目&#xff1a;LEARNING TO EXPLORE USING ACTIVE NEURAL SLAM 作者&#xff1a;Devendra Singh Chaplot, Dhiraj Gandhi 项目地址&#xff1a;https://devendrachaplot.github.io/projects/Neural-SLAM 代码地址&#xff1a;https://github.com/devendrachaplot/N…...

item_search-ks-根据关键词取商品列表

一、接口参数说明&#xff1a; item_search-根据关键词取商品列表&#xff0c;点击更多API调试&#xff0c;请移步注册API账号点击获取测试key和secret 公共参数 请求地址: https://api-gw.onebound.cn/ks/item_search 名称类型必须描述keyString是调用key&#xff08;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 应用中&#xff0c;与后台进行交互时&#xff0c;需要进行 form 表单的提交&#xff0c;然后在页面刷新后给用户反馈结果。在页面刷新过程中&#xff0c;后台会重新返回一段 HTML 代码&#xff0c;这段 HTML 中的大部分内容与之前页面基本相同&#xff0c;这势必造成…...

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扫描零部件形位公差尺寸测量

平面度是表面形状的度量&#xff0c;指示沿该表面的所有点是否在同一平面中&#xff0c;当两个表面需要连接在一起形成紧密连接时&#xff0c;平面度检测至关重要。 CASAIM自动化平面度检测设备通过搭载领先的激光三维测头和智能检测软件自动获取零部件高质量测量数据&#xf…...

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中&#xff0c;MVCC是指多版本并发控制&#xff08;Multi-Version Concurrency Control&#xff09;。它是一种用于处理并发读写操作的数据库事务管理技术。 MVCC通过在数据库中维护多个版本的数据来实现并发控制&#xff0c;每个事务在执行期间看到的数据版本是确定性…...

Docker网络模型详解

目录 一、Docker网络基础 1、端口映射 使用-P选项时Docker会随机映射一个端口至容器内部的开放端口 使用docker logs查看Nginx的日志 查看映射的随机端口范围 2、使用-p可以指定要映射到的本地端口。 Local_Port:Container_Port &#xff1a; 端口映射参数中指定了宿主…...

如何打造属于自己的个人IP?

在当今信息爆炸的时代&#xff0c;个人 IP 已经成为人们在网络世界中的独特标签。无论是在职场上、创业中&#xff0c;还是在社交生活中&#xff0c;拥有个人 IP 的人都能脱颖而出&#xff0c;吸引更多的关注和机会。那么&#xff0c;如何打造属于自己的个人 IP 呢&#xff1f;…...

全网最全最细的jmeter接口测试教程以及接口测试流程详解

一、Jmeter简介 Jmeter是由Apache公司开发的一个纯Java的开源项目&#xff0c;即可以用于做接口测试也可以用于做性能测试。 Jmeter具备高移植性&#xff0c;可以实现跨平台运行。 Jmeter可以实现分布式负载。 Jmeter采用多线程&#xff0c;允许通过多个线程并发取样或通过…...

【Linux命令200例】whereis用于搜索以及定位二进制文件

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;本文已收录于专栏&#xff1a;Linux命令大全。 &#x1f3c6;本专栏我们会通过具体的系统的命令讲解加上鲜…...

Elasticsearch:如何将整个 Elasticsearch 索引导出到文件 - Python 8.x

在实际的使用中&#xff0c;我们有时希望把 Elasticsearch 的索引保存到 JSON 文件中。在之前&#xff0c;我写了一篇管如何备份 Elasticsearch 索引的文章 “Elasticsearch&#xff1a;索引备份及恢复”。在今天&#xff0c;我们使用一种 Python 的方法来做进一步的探讨。你可…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法&#xff1a;原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件&#xff0c;如包含恶意代码、敏感数据或欺诈内容的文档&#xff0c;在企业协同办公环境中&#xff08;如Teams、Google Workspace&#xff09;尤为重要。结合大模型技术&…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral&#xff08;热门工具 Ruff 的开发者&#xff09;推出的下一代高性能 Python 包管理器和构建工具&#xff0c;用 Rust 编写。它旨在解决传统工具&#xff08;如 pip、virtualenv、pip-tools&#xff09;的性能瓶颈&#xff0c;同时…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...