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


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

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

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

相关文章

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …

正则持续学习呀

源匹配为 (.*): (.*)$ 替换匹配为 "$1": "$2", 可将headers改为字典 参考 【爬虫军火库】如何优雅地复制请求头 - 知乎

python --导出数据库表结构(pymysql)

import pymysql from pymysql.cursors import DictCursor from typing import Optional, Dict, List, Anyclass DBSchemaExporter:"""MySQL数据库表结构导出工具,支持提取表和字段注释使用示例:>>> exporter DBSchemaExporter("local…

Kafka 消息模式实战:从简单队列到流处理(二)

四、Kafka 流处理实战 4.1 Kafka Streams 简介 Kafka Streams 是 Kafka 提供的流处理库,它为开发者提供了一套简洁而强大的 API,用于构建实时流处理应用程序。Kafka Streams 基于 Kafka 的高吞吐量、分布式和容错特性,能够处理大规模的实时…

VAS1086Q 奇力科技线性芯片车规用品LED驱动芯片

一、产品概述 名称与定位:VAS1086Q 是奇力科技(Chiplead Technology)推出的汽车级恒流 LED 驱动器,属于 Value Added Solutions 系列,专为汽车 LED 照明应用提供高性价比方案。 核心功能: 支持 10~400mA 可…

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…

浮点数精度问题(CSP38思考)

CSP38的第一题,考到了浮点数的除法(当然考完发现其实也可以不涉及浮点数,直接转化为整型),我第一题一直卡到70、80分,故写下此文。 浮点数的运算有精度损失问题,那么应该如何解决和避免呢&#…

F5 – TCP 连接管理:会话、池级和节点级操作

在 F5 BIG-IP 中,您可以在池成员级别或节点级别管理流向服务器的流量。节点级别状态会影响与该节点关联的所有池,而池成员状态则仅限于单个池。了解每种方法以及何时使用它们对于顺利进行维护窗口和流量管理至关重要。 池级状态:启用、禁用、强制离线、移除 在 BIG-IP 配置…

StoreView SQL,让数据分析不受地域限制

作者:章建(处知) 引言 日志服务 SLS 是云原生观测和分析平台,为 Log、Metric、Trace 等数据提供大规模、低成本、实时的平台化服务。SLS 提供了多地域支持【1】,方便用户可以根据数据源就近接入 SLS 服务&#xff0c…

爬虫基础学习day2

# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…

Golang——10、日志处理和正则处理

日志处理和正则处理 1、logx日志处理1.1、logx简介1.2、日志初始化与配置1.3、常用方法1.4、配合defer捕获panic 2、正则处理2.1、正则表达式语法大全2.2、基本匹配2.3、常见函数使用2.4、从html提取汉字demo 1、logx日志处理 1.1、logx简介 logx 是 go-zero 框架中用于日志记…

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性&#xf…

软件工程:如何做好软件产品

1、什么是产品 从项目到产品 产品:满足行业共性需求的标准产品。即要能够做到配置化的开发,用同一款产品最大限度地满足不同客户的需求,同时让产品具有可以快速响应客户需求变化的能力。 好的产品一定吸收了多个项目的共性,一定是…

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…

sqlsugar WhereIF条件的大于等于和等于查出来的坑

一、如下图所示,当我用 .WhereIF(input.Plancontroltype > 0, u > u.Plancontroltype (DnjqPlancontroltype)input.Plancontroltype) 这里面用等于的时候,返回结果一条数据都没有。 上图中生成的SQL如下: SELECT id AS Id ,code AS …

centos 7 部署awstats 网站访问检测

一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…

React从基础入门到高级实战:React 实战项目 - 项目四:企业级仪表盘

React 实战项目:企业级仪表盘 欢迎来到 React 开发教程专栏 的第 29 篇!在前 28 篇文章中,我们从 React 的基础概念逐步深入到高级技巧,涵盖了组件设计、状态管理、路由配置、性能优化和实时通信等核心内容。这一次,我…

STM32----IAP远程升级

一、概述: IAP,全称是“In-Application Programming”,中文解释为“在程序中编程”。IAP是一种对通过微控制器的对外接口(如USART,IIC,CAN,USB,以太网接口甚至是无线射频通道&#…

模拟搭建私网访问外网、外网访问服务器服务的实践操作

目录 实验环境 实践要求 一、准备工作 1、准备四台虚拟机,分别标号 2、 防火墙额外添加两块网卡,自定义网络连接模式 3、 关闭虚拟机的图形管理工具 4、关闭防火墙 5、分别配置四台虚拟机的IP地址,此处举一个例子(使用的临…