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

Git 的基本使用指南(1)

Git 暂存区:提交前的"预览准备室"

你可能会好奇,为什么 Git 要有暂存区?其实,暂存区就像一个"变更预览区",它让你在正式提交前,能精准控制哪些修改会被纳入版本历史。想象一下:你同时改了三个文件,其中两个已经完成,另一个还在调试——这时暂存区就能帮你只提交前两个文件,避免把未完成的内容混入提交记录。

暂存区核心操作

  • 添加单个文件到暂存区 当你修改了某个文件(比如 hello.html),想要将它纳入下一次提交时,用 git add 命令指定文件:

    git add hello.html

    执行后,通过 git status 命令可以看到,hello.html 已经从"未暂存"状态变为"已暂存",就像在说"这个文件准备好了,可以提交啦"。

  • 批量暂存所有修改 如果多个文件都改好了,逐个添加太麻烦?用这两个命令可以一次性暂存所有已修改、已删除的文件(注意:新创建的未跟踪文件也会被包含):

    git add --all  # 与 git add -A 效果完全相同

    执行后,所有变动都会进入暂存区,适合一次整理多个文件的场景。

  • 取消暂存:把文件"移出来" 不小心把还没改好的文件加入了暂存区?别担心,用 git rm --cached 可以撤销:

    git rm --cached hello.html

    这个命令只会把文件从暂存区移除,不会删除本地文件,放心使用~

Git 提交:给版本历史"拍张快照"

如果说暂存区是"准备室",那提交(commit)就是"存档处"。每一次提交都会给当前项目状态拍一张"快照",并附带一条描述信息——这就像给照片写注解,以后翻看时能立刻明白"这张快照记录了什么变化"。

提交操作全指南

  • 基础提交:保存暂存区内容 当暂存区准备就绪,用 git commit -m 加上描述信息完成提交:

    git commit -m "First release of Hello World!"

    这里的描述信息非常重要,尽量写清楚"做了什么"(比如"修复登录按钮样式"),而不是"怎么做到的",方便自己和团队成员日后追溯。

  • 快捷提交:跳过暂存直接提交已跟踪文件 如果你修改的都是已经被 Git 跟踪的文件(不是新创建的文件),可以用 -a 参数跳过暂存步骤,直接提交所有修改:

    git commit -a -m "Quick update to README"

    ⚠️ 注意:这个命令对新文件无效!新文件必须先用 git add 加入暂存区才能提交。

  • 多行详细描述:当一条信息不够时 如果修改比较复杂,想写更详细的说明(比如分点描述改动),可以直接输入 git commit(不加 -m):

    git commit

    这时会自动打开你的默认编辑器(通常是 Vim 或 VS Code),让你编写多行提交信息,写完保存退出即可完成提交。

  • 实用提交技巧

    • 创建空提交(比如用于初始化项目或标记流程起点):

      git commit --allow-empty -m "Start project"
    • 复用上次的提交信息(适合快速补充提交,无需重新写描述):

      git commit --no-edit
    • 修正最近一次提交(比如漏加了文件,想合并到上一次提交):

      git commit --amend --no-edit  # 保留原描述,只补充内容
  • 查看提交历史:回溯版本足迹git log 命令可以查看所有提交记录,包括每次提交的哈希值(类似版本号)、作者、时间和描述:

    git log

    从日志里能清晰看到项目的演变过程,就像翻阅一本版本历史日记。

Git 标签:给重要版本"贴个书签"

在项目开发中,总会有一些关键节点值得纪念:比如第一个正式版本发布、某个重大功能上线……这时就需要用"标签"(tag)给这些节点做个标记。标签就像书签,能让你快速定位到历史中的重要版本,比记长长的提交哈希值方便多了。

标签的类型与操作

  • 两种常用标签类型

    • 轻量级标签:简单的名称标记(如 v1.0),仅作为提交的"别名",不含额外信息。

    • 带注释标签:包含作者、创建时间和详细说明(用 -m 指定),适合正式发布或需要共享的重要节点,推荐优先使用。

  • 创建标签

    # 创建轻量级标签
    git tag v1.0
    ​
    # 创建带注释标签(推荐)
    git tag -a v1.0.1 -m "Version 1.0.1 release:修复支付接口Bug"
  • 给历史提交打标签 有时需要给过去的某个提交打标签(比如补标之前的版本),只需指定目标提交的哈希值即可:

    git tag v1.1 1a2b3c4d  # 1a2b3c4d 是目标提交的哈希值(可通过 git log 查看)
  • 标签管理:查看与删除

    • 列出所有标签:git tag(按字母顺序排列,方便快速查找)

    • 查看标签详情(包括指向的提交信息):git show v1.0

    • 删除本地标签:git tag -d v1.0(仅删除本地,不影响远程)

  • 同步标签到远程仓库 标签默认只存在于本地,想让团队其他人看到?需要手动推送到远程仓库:

    # 推送单个标签
    git push origin v1.0
    ​
    # 一次性推送所有本地标签
    git push --tags
  • 删除远程标签 如果标签打错了,需要从远程仓库删除时,先用 git tag -d 删除本地标签,再执行:

    git push origin --delete tag v1.0
  • 移动标签位置(谨慎操作) 偶尔需要将标签从旧提交移到新提交(比如修复版本号错误),但这可能影响依赖该标签的人,建议提前沟通:

    # 强制将 v1.0 标签关联到新提交
    git tag -f v1.0 <new-commit-hash>
    # 强制推送到远程(覆盖原有标签)
    git push --force origin v1.0

掌握暂存区、提交和标签的使用,就掌握了 Git 版本控制的核心流程。这些工具能帮你精准管理代码变化,让项目历史清晰可查,无论是个人开发还是团队协作,都会变得更高效。

http://www.dtcms.com/a/311710.html

相关文章:

  • 人类学家与建筑师:区分UX研究和项目管理的需求分析
  • TFS-2022《A Novel Data-Driven Approach to Autonomous Fuzzy Clustering》
  • LVGL代码框架简介
  • 从底层架构到多元场景:计算机构成与应用的深度剖析
  • Mac电脑安装HomeBrew
  • 从AI智能体出发,重构数据中台:迈向Agentic时代的数据能力体系
  • 微积分基础 | 核心概念 / 公式推导
  • 【51单片机6位数码管密码锁】2022-10-15
  • 入门MicroPython+ESP32:安装逗脑IDE及驱动
  • 深入 Go 底层原理(十一):Go 的反射(Reflection)机制
  • ESP32 外设控制基础:GPIO 应用详解与输入输出案例
  • Text2SQL:如何通过自然语言直接获取数据,打破技术壁垒?
  • ventoy 是一个非常棒的开源工具,可以制作多系统的usb启动盘
  • Allegro降版本工具
  • Python 全局解释器锁
  • 如何静态链接 YARA 库,实现免依赖的独立可执行文件部署
  • MySqL(加餐)
  • 代码随想录Day36:动态规划(最后一块石头的重量 II、目标和、一和零)
  • 在线问诊系统源码解析:图文+视频双模式架构开发全攻略
  • 【07】VisionMaster入门到精通——Blob分折
  • IDM下载失败排查
  • 北京-4年功能测试2年空窗-报培训班学测开-今天来聊聊我的痛苦
  • 浪漫温柔的表白
  • 在linux(ubuntu)服务器上安装NTQQ并使用
  • 链表【数据结构】
  • UDP受限广播地址255.255.255.255的通信机制详解
  • 信号产生机制全解析:从硬件异常到软件触发的深度探索
  • sc-atac的基础知识(0)
  • Balabolka软件调用微软离线自然语音合成进行文字转语音下载安装教程
  • 医疗AI中的马尔科夫链深度应用与Python实现