Git 使用规范与命令使用场景详解

Git使用规范及命令 当合并代码有冲突时,需要手动修改冲突内容后,add,commit, push. 而rebase 操作的话,会中断rebase,同时会提示去解决冲突。保存后则可以执行git pull拉取远程代码到本地,再把暂存区的修改释放出来。这样我们就可以保证在提交到本地之前就可以把这些远程和本地的提交都处理干净。rebase没有产生新的节点,使用rebase的git演进路线(提交树)是一直向前的,这样在版本回退时也很容易;用merge的git路线是跳跃的,可以明确的知道是从哪个分支或节点修改的。 阅读详情

Git 使用规范与命令使用场景详解

Git 是现代软件开发中不可或缺的版本控制工具。掌握 Git 的使用规范和命令场景,不仅能提升个人开发效率,还能确保团队协作的顺畅。本文将从 Git 使用规范 和 常用命令场景 两部分进行讲解,帮助你系统性地掌握 Git 的核心用法。


一、Git 使用规范

1. 分支策略(Branch Strategy)

Git 的分支策略是团队协作的核心。以下是常见的分支类型及其使用规范:

分支类型命名规则使用场景
主分支main 或 master用于生产环境部署,仅用于发布版本和打 Tag,不参与开发。
开发分支develop日常开发集成分支,所有功能分支合并归此,保持阶段性稳定。
功能分支feature/<模块>-<功能>-<任务ID>单个功能开发分支,从 develop 创建,开发完成后合并回 develop。
修复分支bugfix/<模块>-<简要描述>非紧急缺陷修复,从 develop 创建,修复后合并回 develop。
热修复分支hotfix/<简要描述>生产环境紧急修复,从 main 创建,修复后合并回 main 和 develop。
发布分支release/v<版本号>发布前版本封版处理,如补充文档、调整配置等,从 develop 创建。

示例:

  • 功能分支:feature/user-login-1234
  • 热修复分支:hotfix/fix-prod-login

2. 提交规范(Commit Message)

规范的提交信息能显著提升代码可维护性。推荐采用 Angular Commit 规范,格式如下:

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
提交类型(Type):
类型说明示例
feat新功能开发feat(payment): 微信支付功能集成
fix修复 Bugfix(auth): 修复登录失败问题
docs文档更新docs: 更新 README.md
style代码格式调整(不影响逻辑)style: 格式化代码
refactor代码重构(非功能或 Bug 修复)refactor(router): 路由模块重构
perf性能优化perf: 优化数据库查询
test添加或修改测试用例test: 新增单元测试
chore构建工具、依赖项等维护性任务chore: 更新依赖包
示例:
feat(user): 实现用户注册功能
- 新增注册表单组件
- 添加注册接口调用逻辑
- 完善注册成功后的跳转逻辑
Closes #1234

3. 代码审查与合并规范

  • Pull Request (PR):所有合并到 develop 或 main 的代码必须经过 PR 审查。
  • 代码审核要求:
    • 确保提交信息符合规范。
    • 代码无冗余逻辑。
    • 单元测试覆盖率达标。
  • 合并方式:
    • 优先使用 git merge 保留完整历史。
    • 仅在需要线性历史时使用 git rebase。

二、Git 常用命令使用场景

1. 初始化与配置

场景:首次使用 Git 或新项目初始化
# 初始化本地仓库
git init

# 克隆远程仓库
git clone <repository-url>

# 配置用户名和邮箱
git config --global user.name "Your Name"
git config --global user.email "email@example.com"

2. 工作区管理

场景:查看文件状态、添加/提交更改
# 查看工作区文件状态
git status

# 将文件添加到暂存区
git add <file-name>       # 添加单个文件
git add .                 # 添加所有更改

# 提交更改到本地仓库
git commit -m "提交信息"  # 直接提交
git commit -am "提交信息" # 添加并提交(仅限已跟踪文件)
场景:取消暂存或回退更改
# 取消暂存区的更改
git reset <file-name>     # 取消单个文件
git reset                  # 取消所有暂存

# 回退到上一个版本(保留工作区更改)
git reset --soft HEAD~1

# 彻底回退(删除提交和更改)
git reset --hard HEAD~1

3. 分支操作

场景:创建、切换、合并分支
# 查看本地分支
git branch

# 创建新分支
git branch <branch-name>

# 切换分支
git checkout <branch-name>

# 合并分支(将 feature 分支合并到当前分支)
git merge feature-branch

# 解决冲突后提交
git add . && git commit -m "Merge feature-branch"
场景:变基(Rebase)
# 将当前分支的提交变基到 develop 分支上
git checkout feature-branch
git rebase develop

4. 远程仓库管理

场景:推送、拉取代码
# 推送代码到远程仓库
git push origin <branch-name>

# 拉取远程仓库更新
git pull origin <branch-name>

# 关联远程仓库
git remote add origin <repository-url>
场景:强制推送(慎用)
# 强制推送(覆盖远程分支)
git push -f origin <branch-name>

5. 版本回退与恢复

场景:查看提交历史
# 查看提交日志
git log

# 图形化查看提交历史
git log --oneline --graph --all

# 查看具体文件差异
git diff <file-name>
场景:撤销提交
# 撤销最近一次提交(保留更改)
git reset --soft HEAD~1

# 撤销提交并删除更改(慎用)
git reset --hard HEAD~1
场景:恢复误删内容
# 查看所有操作记录(包括被删除的提交)
git reflog

# 恢复到指定提交
git checkout <commit-hash>

6. 高级命令场景

场景:精准移植提交(Cherry-pick)
# 将某个提交应用到当前分支
git cherry-pick <commit-hash>
场景:快速定位 Bug(Bisect)
# 启动二分查找
git bisect start
git bisect bad         # 标记当前提交为坏版本
git bisect good v1.0   # 标记旧版本为好版本
场景:清理未跟踪文件
# 删除未跟踪文件和目录
git clean -fd

三、总结

Git 的使用规范和命令场景是软件开发中不可或缺的技能。通过遵循分支策略、提交规范和团队协作流程,可以显著提升代码质量和协作效率。同时,灵活运用 Git 命令(如 merge、rebase、cherry-pick 等)能够应对复杂开发场景。

建议:

  1. 实践为主:多动手尝试 Git 命令,熟悉其行为。
  2. 规范先行:团队统一 Git 使用规范,减少协作摩擦。
  3. 善用工具:结合图形化工具(如 VSCode、GitKraken)提升效率。
Git使用规范 文章目录一、简介二、分支1、概念2、原则3、协同三、合并1、merge2、rebase3、原则四、代码管理规范1、目的2、适用对象3、原则4、分支管理5、工作流6、日志规范 一、简介         Git是分布式版本控制系统,与之对应另一种常用的SVN是集中式版本控制系统。它们的差异很大,主要是源于它们的设计思想,这里就不展开细说,大家可以自行查找资料。总体来说,Git更灵活、对工作环境依赖更小、更适合多人团队的协同工作,但是 阅读详情

相关推荐

Git使用操作规范

一、创建自己的开发分支 1.1 配置Git环境 1.1.1 Windows平台上安装 1.1.2 Linux平台上安装 1.1.3 Mac平台上安装 1.1.4 基本概念名词解释 Git 工作区、暂存区和版本库 **工作区:**就是你在电脑里能看到的目录。 **暂存区:**英文叫 stage 或 index。一般存放在.git目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。 **版本库:**工作..

祥哥 2800

git使用规范

git使用规范 一、分支管理 1.1分支定义 master分支 主分支,最稳定,功能最完整的分支,可以随时发布的代码 以Tag标记一个版本,因此每一个tag都对应一个线上(生产)版本 master 分支一般由 dev 以及 fix 分支合并,不允在master分支直接提交代码!! dev分支 dev分支始终保持功能最全、bug修复后的代码,未发布正式前,功能最新最全的分支 新功能开发必须基于dev分支创建新功能的feat分支 feat分支 开发新功能(feature)由dev为基础创建的新

luozochuan的博客 3571

Git Patch生成与合入实战:从diff到format-patch的团队协作指南

在软件开发和版本控制中,代码变更的传递与整合是团队协作的核心环节。其原理基于差异比较算法,通过生成描述文件内容增删的补丁文件,实现代码变更的精确记录与迁移。这项技术的核心价值在于,它提供了一种独立于直接分支合并和远程仓库操作的代码交换方式,增强了工作流的灵活性与可控性。在应用场景上,它尤其适用于紧急线上修复、跨分支代码预审、开源项目补丁移植以及需要保留完整提交历史的代码评审流程。本文将聚焦于Git环境下的Patch处理,详细解析如何使用`git format-patch`生成包含完整元信息的补丁包,并利用`

weixin_42529328的博客 319

一篇文章说明白Git使用规范,收藏慢慢看

提交合并你还在用merge吗?rebase了解一下。

hzj_java的博客 1313

Git本地仓库管理实战:从零掌握版本控制核心操作

版本控制系统是现代软件开发中管理代码变更历史的基石,它通过记录文件每次修改的完整快照,帮助开发者追踪项目演进过程。其核心原理在于构建一个内容寻址的文件系统,将每次提交与对应的目录树、文件内容关联,形成可追溯的版本链。这一技术价值在于实现了代码的时光回溯能力,支持并行开发与协作,是团队高效协作和项目稳定迭代的保障。在应用场景上,无论是个人文档管理、独立项目开发,还是作为团队协作的基础,本地版本控制都是首要环节。本文聚焦于Git本地仓库的实战操作,深入解析工作区、暂存区与仓库的协作逻辑,并详细演示如何通过git

weixin_30096975的博客 265

【08-Git 撤销与急救篇】

本文介绍了Git版本控制中的撤销操作与急救方法,主要包括:1)reset/revert/restore三种回退方式的区别与适用场景;2)使用reflog恢复误操作,如找回被删除的代码或分支;3)force push的正确使用方法与注意事项;4)找回被删除的分支和commit的操作步骤。文章强调reflog是本地操作的"后悔药",但最终保障仍是及时将代码推送到远程仓库,并提供了详细的操作命令和场景解决方案,帮助开发者有效应对版本控制中的常见问题。

tiao_01的博客 161

git 基础命令自整理 包含参考多处文章信息

** HEAD 指向当前所在的分支 git log --online --decorate #显示提交历史、各个分支的指向以及项目的分支分叉 git log --oneline --decorate --graph --all #创建分支 —> 创建新分支;但是不会直接切换到该分支 git branch branch1 #切换到branch1分支命令 git checkout branch1 #创建分支并切换到该分支下面 git checkout -b branch1 #合并分支 -->

whiteGu的博客 415

树莓派3-改装wifi外置天线

声明:本文只是技术性探讨,改装引起的产品损坏等后果,由用户自负! 改装主要有两种方法 方法一:直接替换原来的天线 1、移除原有的小陶瓷天线,就在Made in PRC(或UK)那边的那个 清理一下阻焊剂方便天线接地(图中PRC左侧) 2、焊接天线 天线的屏蔽层焊接到清理完阻焊剂的地方,中间的信号线焊接到PRC右侧焊盘。 3、最终的样子

huayucong的博客 2万+

Git 分支切换完整指南

远程名>/<分支名>,别写成。优先git switch,老 git 才用checkout。单远程直接写分支名,git 自动建本地分支 + 自动跟踪。仅在多远程同名冲突时,才用-c显式指定起点。-c起点是远程分支时,--track可省略。是查名字的好帮手。

我的博客 503

攻克+86手机号Discord验证墙:从“无效”到“成功”的实战指南

本文提供了一份针对+86手机号在Discord注册时频繁遭遇“手机号无效”问题的实战解决指南。文章系统分析了问题根源,并分步详解了从打造纯净网络环境、尝试多种手机号格式(如+86前加0),到更换iOS等客户端设备的有效方法,旨在帮助用户成功完成Discord手机号验证。

mac99的博客 1115

2016域控服务器迁移,WIN Server2016 域服务器迁移出错

各位大神: 这几天刚安装了一台windows server 2016做域迁移时出现错误:1、默认SYSLOG、NETLOGON共享文件重启后自动取消共享,即使手动打开后依然会出现自动取消2、组策略中编辑策略时出现以下报错 policys.png (19.29 KB)2017-2-7 13:52操作此动作之前可以访问本机的共享(NETLOGON)3、使用DCDIAG检测多个报错:C:\Use...

weixin_31833039的博客 3314

AI应用-Git基础

本文提供了Git版本控制系统的实用指南,重点介绍了AI项目开发中的Git实践。核心内容包括:Git的基本概念(快照机制、三区关系)、安装配置、10个常用命令(如status、add、commit等)、.gitignore配置、团队协作流程(Feature Branch Workflow)、冲突解决方法、撤销操作技巧等。特别强调了AI项目开发中的最佳实践:提交前检查status、规范commit message、小步频繁提交。文章还提供了速查卡和推荐学习资源(Pro Git、Learn Git Branchi

zou54188666的博客 507

使用 ONLYOFFICE API 构建 Java 转换器,在 Word 和 PDF 之间进行转换

随着文档处理需求的增加,格式转换成为了一个重要的需求点。由于PDF格式具有跨平台、不易被篡改的特性,将Word格式(.docx)转换为PDF格式(.pdf)的需求尤为强烈。ONLYOFFICE作为一个强大的办公套件,提供了这样的转换功能,使得用户可以轻松地在Word和PDF之间进行转换。

ONLYOFFICE的官方博客 4569

IntelliJ IDEA实战:巧用Squash合并Git提交,打造清晰版本历史

本文详细介绍了如何在IntelliJ IDEA中使用Squash合并Git提交,帮助开发者打造清晰的版本历史。通过实战演示和避坑指南,讲解如何识别需要合并的提交、使用交互式变基操作以及处理冲突,提升团队协作效率和代码审查质量。

weixin_30729609的博客 244

yolov26改进 | Neck篇 | 利用Gold-YOLO改进yolov26对小目标检测能力(全网独家首发)

本文介绍利用Gold-YOLO的Neck改进YOLOv26,通过信息聚集—分发机制GD,先全局汇聚不同层级特征,再将融合后的全局信息重新注入各尺度分支,增强浅层细节与深层语义之间的交互,减少传统Neck逐层传递造成的信息损失。该结构虽然融合路径更长,但能够在不过度增加延迟的前提下提升多尺度目标检测能力,尤其适合大小目标并存、尺度变化明显和复杂背景场景。本文将讲解GD机制、Neck替换、模块注册与配置方法,并提供完整代码、配置文件及Codex修改思路,方便直接复现、实验对比和二次创新。

Snu77的博客 293

AI Agent驱动的多模态情感分析方法:从BERT到Vision Transformer的探索

情感分析(Sentiment Analysis)是自然语言处理(NLP)与计算机视觉(CV)中一项重要任务。传统的情感分析主要依赖于文本数据,但在现实应用中,情感往往通过 语言、语音、表情、姿态 等多模态信号共同传达。因此,结合 多模态深度学习 的 AI Agent 在情感理解中具有广阔的前景。

一键难忘的博客 738

从add到push:嵌入式场景下Git高频操作的避坑实操指南

二是 commit --amend, 只能修改最后一次提交,千万不要试图用它去修改已经推送到远程的历史记录,否则会导致团队成员的代码基准不一致;, 在嵌入式开发中,我们经常需要维护多个硬件版本的并行分支,合并前务必确认当前所在的分支,避免把开发中的实验性代码合进了主分支。相比纯软件项目,嵌入式开发涉及交叉编译环境、硬件依赖以及大量的本地配置,一旦代码管理不规范,复现Bug和版本回退的成本极高。一是 reset --hard, 只要敲下去,工作区和暂存区的修改直接清零,所以在按回车之前一定要确认当前状态;

EASY_EAI的博客 192

用python画带有正负值的条形图

常见的条形图只能表现数据的大小,却不能表现值的正负关系。但是其实仅仅使用`pandas`和`matplotlib`两个包就可以实现y轴负轴的添加以及负值的显示,并且可以为正负值分别设置不同的颜色,让条形图看上去更加清晰,易于我们分析

weixin_44853840的博客 5383

浅谈git命令及其使用场景

浅谈git命令 git与SVN对比 GIT是分布式的,SVN不是 GIT的内容完整性要优于SVN GIT分支和SVN的分支不同 svn在没网的时候没办法commit以及创建分支等操作,git每个人都有自己的版本库。GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏分支是一个完整的目录。且这个目录拥有完整的实际文件。如果工作成...

Mr.hu 525

深入Netflix影片分类数据抓取的Python爬虫实战:反反爬机制绕过与Playwright应用全解析

技术工具用途Playwright控制真实浏览器模拟用户行为开发语言asyncio异步调度浏览器任务pandas数据处理和导出sqlite3本地数据库存储支持随机UA模拟,增强反爬能力为什么选择 Playwright?✅ 支持多浏览器(Chromium、Firefox、WebKit)✅ 原生支持 Python 异步编程✅ 提供截图、滚动模拟、验证码处理等高级功能✅ 反爬能力强,模拟真实用户访问。

2201_76125261的博客 1239

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

团队Git使用规范

2024年。

lpfasd123的博客 1636

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

史上最全最好的Git分支使用规范

当遵循了某种约定的Git分支,在代码提交以及多开发、多分支协同工作的时候,必须遵循这个规范操作,否则不予以提交、合并代码、提测、上线等操作。1.开发新需求,从master分支创建功能分支,名为feature/xx-xx(需求功能-日期),若功能是多人开发,名为feature/xx-xx-xx01(需求功能-日期-姓名01)•预发布分支(release) - 发布版本之前从dev分支分出来的一个用于测试的分支;7.成功将release分支合并到master分支和dev分支后,删除release分支。

qq_31532979的贺公子之数据科学与艺术博客,致力于科技向善,拥抱开源,要用技术的影响力来领导团队,而不是威权和职位! 4981

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

git规范与日志规范

因为要分享git规范,所以今天也顺便做一个总结,这个仅限于对git的开发中和部署时的规范和提交时的日志规范做总结。本文章分两个部分总结git规范,一个是从分支讲解在开发 目录 分支构成 永久分支-master,develop Feature Hotfix 补充(特殊情况下处理方式) git提交规范-commit message Header Type Scope Subject Body...

禾木人生 3180

【Git 精品详解】企业规范:企业级开发模型、Git Flow、发版流程规范、Code Owner 制度、事故应急回滚

从为什么需要企业级开发模型讲起,深入 Git Flow / GitHub Flow / GitLab Flow 三大经典模型的原理与对比,再到发版流程规范、Code Owner 制度、事故应急回滚,最后用大厂发版流程实战把所有知识串起来。

分享 AI 时代程序员的进阶之路:大模型应用、AI 编程工具实战,同时沉淀 C / Linux 底层技术笔记。与君共赴,万里征途。 2524

详解Jenkins Pipeline 中git 命令的使用方法

在 Jenkins Pipeline 中,git 命令是用于从版本控制系统(如 Git)拉取代码的核心步骤。其用法灵活,支持多种配置参数,但需要遵循 Jenkins 流水线语法规范。

liwenxiang629的博客 2275

Git使用规范&&Git常用命令

多人修改同一分支,我在本地修改好后,发现远程分支已经被改动了,此时是无法pull的。找到提交的commit id ,只有两次以上的提交才可以使用,如果只有一次提交则使用。需求版本大版本根据:V1.0.0 往后累加 V1.1.0。首选需要找到需要修改的commit it ,这里修改完成以后需要强制推到版本分支才可以。保存以后退出,再查看一下提交内容是否被修改。分支上修改了代码,这个时候想把代码切换到。不小心改动了其他分支代码。也可以直接基于dev分支直接推送分支。分支上开发,一不小心切换到了。

简单简单小白 1万+
上一篇: Ubuntu下挂载NTFS格式磁盘
下一篇: 如何在 Git Commit Message 中正确提及共同贡献者(Co-authored-by 实践指南)
DennisReYoonjiho
博客等级 码龄7年 216粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值