Git 的基本使用指南(1)

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

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

暂存区核心操作

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

    bash 复制代码
    git add hello.html

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

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

    bash 复制代码
    git add --all  # 与 git add -A 效果完全相同

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

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

    bash 复制代码
    git rm --cached hello.html

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

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

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

提交操作全指南

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

    bash 复制代码
    git commit -m "First release of Hello World!"

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

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

    bash 复制代码
    git commit -a -m "Quick update to README"

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

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

    bash 复制代码
    git commit

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

  • 实用提交技巧

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

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

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

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

    bash 复制代码
    git log

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

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

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

标签的类型与操作

  • 两种常用标签类型

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

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

  • 创建标签

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

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

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

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

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

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

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

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

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

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

相关推荐
DHclly23 分钟前
Gpustack 运行一段时间后出现 Failed to initialize NVML: Unknown Error 解决办法
linux·ai
Jooolin29 分钟前
【Linux】指令大全!常用的都在这了~
linux·操作系统·ai编程
dolzhuying1 小时前
git常见场景食用指南
git
₯㎕星空&繁华1 小时前
Linux—进程状态
linux·运维·服务器·笔记
银河码1 小时前
嵌入式linux驱动开发:什么是Linux驱动?深度解析与实战入门
linux·c语言·驱动开发·驱动入门
程序员JerrySUN4 小时前
OpenCV 全解读:核心、源码结构与图像/视频渲染能力深度对比
linux·人工智能·驱动开发·opencv·计算机视觉·缓存·音视频
wyjcxyyy4 小时前
打靶日记-RCE-labs(续)
linux·运维·服务器
Ray Song4 小时前
Linux iptables防火墙操作
linux·网络·iptables·防火墙
is08155 小时前
linux 启动流程?
linux