Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通
一、基础配置命令
1. 用户信息配置
# 设置全局用户名
git config --global user.name "你的名字"# 设置全局邮箱
git config --global user.email "你的邮箱@example.com"# 查看所有配置
git config --list
2. 仓库初始化
# 初始化当前目录为Git仓库
git init# 克隆远程仓库到本地
git clone https://github.com/username/repo.git# 克隆指定分支
git clone -b branch_name https://github.com/username/repo.git
二、基础工作流命令
1. 状态查看
# 查看当前状态(最常用)
git status# 简短状态显示
git status -s
# 输出示例:
# M README.md (已修改)
# A newfile.txt (已添加)
# ?? untracked.js (未跟踪)
2. 添加与提交
# 添加单个文件
git add filename# 添加所有变更(包括新文件和修改)
git add .# 添加所有修改(不包括新文件)
git add -u# 提交变更
git commit -m "提交描述信息"# 添加并提交(适合小改动)
git commit -am "添加并提交"
3. 查看历史
# 查看完整提交历史
git log# 单行显示提交历史
git log --oneline# 带分支图的提交历史
git log --graph --all --oneline# 查看某文件的修改历史
git log -p filename
三、分支管理命令
1. 基础分支操作
# 查看所有分支
git branch -a# 创建新分支
git branch new-feature# 切换分支
git checkout develop# 创建并切换分支(常用)
git checkout -b hotfix# 删除分支
git branch -d old-feature
2. 分支合并与变基
# 合并分支到当前分支
git merge feature-branch# 变基(重写提交历史)
git rebase main# 交互式变基(修改最近3次提交)
git rebase -i HEAD~3
3. 远程分支操作
# 获取远程分支
git fetch origin# 跟踪远程分支
git checkout --track origin/remote-branch# 推送本地分支到远程
git push -u origin local-branch# 删除远程分支
git push origin --delete old-branch
四、撤销与回退命令
1. 工作区撤销
# 撤销工作区单个文件的修改
git restore filename# 撤销工作区所有修改
git restore .# 撤销所有未跟踪文件
git clean -fd
2. 暂存区撤销
# 将文件移出暂存区(保留修改)
git restore --staged filename# 清空暂存区(保留工作区修改)
git reset
3. 提交回退
# 撤销上一次提交(创建新提交)
git revert HEAD# 回退到指定提交(保留修改)
git reset commit_id# 硬回退(丢弃所有修改)
git reset --hard commit_id
五、远程仓库操作
1. 远程连接管理
# 查看远程仓库
git remote -v# 添加远程仓库
git remote add upstream https://github.com/original/repo.git# 修改远程仓库URL
git remote set-url origin https://new.url/repo.git
2. 推送与拉取
# 推送当前分支到默认远程仓库
git push# 强制推送(谨慎使用)
git push -f# 拉取远程更新(fetch + merge)
git pull# 拉取远程更新(fetch + rebase)
git pull --rebase
六、高级实用命令
1. 储藏更改
# 储藏当前工作区修改
git stash# 查看储藏列表
git stash list# 恢复最近储藏
git stash pop# 恢复指定储藏
git stash apply stash@{1}
2. 标签管理
# 创建标签
git tag v1.0.0# 创建带注释的标签
git tag -a v1.1.0 -m "Release version 1.1.0"# 推送标签到远程
git push origin --tags# 删除本地标签
git tag -d v0.9.0
3. 文件忽略
创建.gitignore
文件:
# 忽略所有.class文件
*.class# 忽略node_modules目录
node_modules/# 忽略.env环境文件
.env# 不忽略特定文件
!important.class
4. 差异比较
# 比较工作区和暂存区
git diff# 比较暂存区和最新提交
git diff --staged# 比较两个分支
git diff branch1..branch2# 比较指定文件在不同分支的差异
git diff branch1 branch2 -- filename
七、Git命令速查表
分类 | 命令 | 功能描述 |
---|---|---|
基础操作 | git init | 初始化仓库 |
git clone [url] | 克隆远程仓库 | |
git status | 查看状态 | |
提交相关 | git add [file] | 添加到暂存区 |
git commit -m "msg" | 提交变更 | |
git commit --amend | 修改上次提交 | |
分支管理 | git branch | 查看分支 |
git checkout -b [branch] | 创建并切换分支 | |
git merge [branch] | 合并分支 | |
远程操作 | git remote -v | 查看远程仓库 |
git push | 推送到远程 | |
git pull | 从远程拉取 | |
撤销操作 | git restore [file] | 撤销工作区修改 |
git restore --staged [file] | 撤销暂存区添加 | |
git reset [commit] | 回退到指定提交 | |
历史查看 | git log | 查看提交历史 |
git log --oneline --graph | 图形化历史 | |
git diff | 比较差异 |
八、最佳实践小贴士
-
提交规范:使用清晰、一致的提交信息格式
feat: 添加用户登录功能 fix: 解决首页加载问题 docs: 更新API文档
-
分支策略:
main/master
:稳定生产分支develop
:开发主分支feature/*
:功能开发分支hotfix/*
:紧急修复分支
-
黄金法则:
- 频繁提交小改动
- 提交前使用
git diff
检查变更 - 推送前拉取最新代码
- 慎用
git push -f
强制推送
-
救命命令:
# 查看命令帮助 git help [command]# 查看命令简写手册 git [command] -h
总结
Git的强大功能源于其丰富的命令集,掌握这些常用命令将极大提升你的开发效率。记住:
- 工作区 → 暂存区 → 仓库 是Git的核心工作流
add
、commit
、push
、pull
是最常用命令- 理解
reset
、revert
、stash
等撤销操作能救你于危难 - 良好的分支管理策略是团队协作的基础
实践是最好的学习方式,建议在日常开发中多使用这些命令,逐步形成自己的Git工作流。遇到问题时,别忘了Git内置的帮助系统(git help [command]
)是你最好的朋友!
掌握Git是每个开发者的必备技能,本文整理了最常用、最实用的Git命令,助你高效管理代码版本。
「小贴士」:点击头像→【关注】按钮,获取更多软件测试的晋升认知不迷路! 🚀
相关文章:
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)
题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...

Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...

LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...

【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...

群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...

android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...

基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...
解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist
现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

基于Java+VUE+MariaDB实现(Web)仿小米商城
仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...