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

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比较差异

八、最佳实践小贴士

  1. 提交规范:使用清晰、一致的提交信息格式

    feat: 添加用户登录功能
    fix: 解决首页加载问题
    docs: 更新API文档
    
  2. 分支策略

    • main/master:稳定生产分支
    • develop:开发主分支
    • feature/*:功能开发分支
    • hotfix/*:紧急修复分支
  3. 黄金法则

    • 频繁提交小改动
    • 提交前使用git diff检查变更
    • 推送前拉取最新代码
    • 慎用git push -f强制推送
  4. 救命命令

    # 查看命令帮助
    git help [command]# 查看命令简写手册
    git [command] -h
    

总结

Git的强大功能源于其丰富的命令集,掌握这些常用命令将极大提升你的开发效率。记住:

  • 工作区 → 暂存区 → 仓库 是Git的核心工作流
  • addcommitpushpull 是最常用命令
  • 理解resetrevertstash等撤销操作能救你于危难
  • 良好的分支管理策略是团队协作的基础

实践是最好的学习方式,建议在日常开发中多使用这些命令,逐步形成自己的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# 如果存在&#xff0…...

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 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...