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

【Git知识】Git 常用知识集合之基础--分支系统与 Tag 标签机制

🧰 Git 常用知识集合

Git 是程序员的“时间机器”。这份手册帮你从入门到精通,把 Git 玩明白。


1️⃣ Git 基础操作流程

📌 三步走流程:添加 → 提交 → 推送

git add .                     # 把所有修改加入暂存区
git commit -m "提交说明"      # 提交到本地仓库
git push origin master        # 推送到远端 master 分支

🌍 设置远端仓库

git remote add origin https://github.com/xxx.git
# 设置默认远端 origin,一般用于 GitHub、Giteegit remote add home https://gitee.com/xxx.git
git remote add company https://internal.git.com/project.git
# 自定义远端名,适用于多仓库环境(家庭/公司)

💡 origin 后的 master 是你推送的远端分支名,可以是 maindev 等。


2️⃣ 暂存区 vs 工作区:傻傻分不清楚?

📂 工作区(Working Directory)

你平时编辑文件的地方,比如 VSCode 中打开的项目文件夹。

🧺 暂存区(Staging Area / Index)

通过 git add 添加的内容,就会进入暂存区。它是“准备提交清单”,不会直接提交,也不会直接影响远端。

🗃️ 本地仓库(Local Repository)

通过 git commit 把暂存区的内容正式提交记录,形成版本快照,存在 .git 目录里。

☁️ 远程仓库(Remote Repository)

如 GitHub、Gitee 上的仓库。需要 git push 才能同步上去。


🔁 各阶段之间的流转关系

# 工作区 → 暂存区
git add .# 暂存区 → 本地仓库
git commit -m "说明"# 本地仓库 → 远程仓库
git push origin master# 暂存区 → 工作区(取消暂存)
git reset <文件名># 工作区 → 不追踪(删除缓存)
git rm --cached <文件名>

3️⃣ 分支系统与 Tag 标签机制

🌿 分支(Branch)

Git 的分支就像平行世界,不同分支之间可以各自开发,最后合并。

✨ 分支常用操作
git branch               # 查看所有本地分支
git branch dev           # 创建 dev 分支
git checkout dev         # 切换到 dev 分支
git checkout -b hotfix   # 创建并切换到 hotfix 分支git merge dev            # 把 dev 分支合并到当前分支
git branch -d dev        # 删除本地分支
git push origin --delete dev  # 删除远端分支

✅ 合并说明:A 合并到 B,需要先切到 B 分支 执行 git merge A,有冲突也能当场解决,因为你就在 B 分支上!


🏷️ 标签(Tag)

Tag 就像是 Git 的“快照”,可以给某次提交打一个永久的标记,比如 v1.0.0 发布版本。

🎯 Tag 操作指令
git tag                   # 查看所有标签
git tag v1.0              # 当前 commit 打标签
git tag -a v1.1 -m "说明" # 带说明打标签
git push origin v1.0      # 推送单个标签到远端
git push origin --tags    # 推送所有本地标签
git tag -d v1.0           # 删除本地标签
git push origin :refs/tags/v1.0  # 删除远端标签

🧠 Tag 不属于任何分支,不受 resetcheckout 等分支操作影响,非常适合做版本发布的定点快照。


✅ 总结:Git 就是一张四层地图

[工作区] → git add → [暂存区] → git commit → [本地仓库] → git push → [远程仓库]

分支:像分叉的道路,灵活多变
标签:像地图上的锚点,永久标记


http://www.xdnf.cn/news/16345.html

相关文章:

  • 华为仓颉编程语言的表达式及其特点
  • Lua协同程序(coroutine)
  • iOS网络之异步加载
  • YOLO算法演进综述:从YOLOv1到YOLOv13的技术突破与应用实践,一文掌握YOLO家族全部算法!
  • 图像认知与OpenCV——图像预处理2
  • 【Unity开发】飞机大战项目实现总结
  • Python 程序设计讲义(15):Python 的数据运算——位运算
  • Unity VS Unreal Engine ,“电影像游戏的时代” 新手如何抉择引擎?(1)
  • 读书笔记(黄帝内经)
  • 使用Python采集招聘网站数据并智能分析求职信息
  • P1013 [NOIP 1998 提高组] 进制位
  • ESP32S3 Ubuntu vscode如何使用USB-JTAG调试
  • java中如何返回一个可以执行返回操作(return action)的函数或对象
  • 【自用】JavaSE--阶段测试
  • 基于深度学习的胸部 X 光图像肺炎分类系统(二)
  • 学习设计模式《十九》——享元模式
  • ICCV 2025 | CWNet: Causal Wavelet Network for Low-Light Image Enhancement
  • 主要分布在背侧海马体(dHPC)CA1区域(dCA1)的位置细胞对NLP中的深层语义分析的积极影响和启示
  • LeetCode|Day24|383. 赎金信|Python刷题笔记
  • 【Oracle】Oracle权限迷宫破解指南:2步定位视图依赖与授权关系
  • QML WorkerScript
  • 高版本Android跨应用广播通信实例
  • MBPO 算法:让智能体像人一样 “先模拟后实操”—强化学习(17)
  • Linux进程间通信:管道机制全方位解读
  • 卫星物联网:使用兼容 Arduino 的全新 Iridium Certus 9704 开发套件深入探索
  • 如何判断钱包的合约签名是否安全?
  • MySQL基础02
  • 常见半导体的介电常数
  • 【ROS1】09-ROS通信机制——参数服务器
  • 接口多态之我的误解