Git常用命令完全指南:从入门到精通

news2025/6/12 3:15:49

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命令,助你高效管理代码版本。


「小贴士」:点击头像→【关注】按钮,获取更多软件测试的晋升认知不迷路! 🚀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2407139.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[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的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…

LabVIEW双光子成像系统技术

双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…

【 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指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…

基于PHP的连锁酒店管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…

基于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 注意:运行前…

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)

macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…

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…

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …

PHP 8.5 即将发布:管道操作符、强力调试

前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)

引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)

一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…