Git命令使用全攻略:从创建分支到合并的完整流程

Git命令使用全攻略:从创建分支到合并的完整流程

    • 引言
    • 一、初始化项目与基础配置
      • 1.1 克隆远程仓库
      • 1.2 查看当前分支状态
    • 二、创建与管理分支
      • 2.1 从main分支创建新功能分支
      • 2.2 查看分支列表
      • 2.3 提交代码到新分支
      • 2.4 推送分支到GitHub
    • 三、版本发布与标签管理
      • 3.1 创建轻量标签(推荐用于简单版本标识)
      • 3.2 创建附注标签(推荐用于正式发布)
      • 3.3 推送标签到远程仓库
      • 3.4 查看标签信息
    • 四、代码合并与冲突解决
      • 4.1 切换回main分支
      • 4.2 拉取最新代码(避免合并冲突)
      • 4.3 合并功能分支到main
      • 4.4 删除已合并的分支(可选)
    • 五、GitHub操作补充
      • 5.1 创建Pull Request(PR)
      • 5.2 查看标签详情
    • 六、最佳实践建议
    • 结语

引言

Git作为现代软件开发中不可或缺的版本控制工具,掌握其核心命令是每个开发者的必修课。本文将通过一个完整的项目流程,详细讲解如何在GitHub上使用Git进行分支管理、版本发布和代码合并。无论你是刚接触Git的新手,还是希望梳理操作流程的开发者,本文都将为你提供清晰的实践指南。


一、初始化项目与基础配置

1.1 克隆远程仓库

git clone https://github.com/your-username/your-repo.git
cd your-repo

替换your-usernameyour-repo为实际的GitHub账号和仓库名

1.2 查看当前分支状态

git status

该命令会显示当前所在分支(默认为main)及工作目录状态


二、创建与管理分支

2.1 从main分支创建新功能分支

git checkout -b feature/new-feature

或使用新版本Git的简化命令:

git switch -c feature/new-feature

feature/new-feature为自定义的分支名称,建议遵循feature/xxx命名规范

2.2 查看分支列表

git branch -a

-a参数会显示所有本地和远程分支

2.3 提交代码到新分支

git add .
git commit -m "Implement new feature"

2.4 推送分支到GitHub

git push -u origin feature/new-feature

-u参数会将本地分支与远程分支建立追踪关系


三、版本发布与标签管理

3.1 创建轻量标签(推荐用于简单版本标识)

git tag v1.0.0

3.2 创建附注标签(推荐用于正式发布)

git tag -a v1.0.0 -m "Release version 1.0.0"

-a参数创建带附注的标签,-m指定标签信息

3.3 推送标签到远程仓库

git push origin v1.0.0

若需推送所有标签:

git push --tags

3.4 查看标签信息

git show v1.0.0

四、代码合并与冲突解决

4.1 切换回main分支

git checkout main

4.2 拉取最新代码(避免合并冲突)

git pull origin main

4.3 合并功能分支到main

git merge feature/new-feature

冲突解决流程

  1. Git会提示冲突文件
  2. 手动编辑冲突文件,保留需要的代码
  3. 标记冲突已解决:
    git add <conflicted-file>
    
  4. 完成合并:
    git commit
    

4.4 删除已合并的分支(可选)

git branch -d feature/new-feature

强制删除未合并的分支:

git branch -D feature/new-feature

五、GitHub操作补充

5.1 创建Pull Request(PR)

  1. 登录GitHub仓库
  2. Compare & pull request页面创建PR
  3. 填写描述并提交
  4. 等待代码审查后合并

5.2 查看标签详情

在GitHub仓库的Releases页面可查看所有tag信息


六、最佳实践建议

  1. 分支策略:采用main(生产环境)和develop(开发环境)双分支模式
  2. 标签规范:遵循语义化版本号(如v1.2.3
  3. 合并前检查:确保功能分支已通过CI/CD测试
  4. 定期同步:定期从main拉取最新代码避免大冲突

结语

通过本文的实践流程,你已经掌握了Git的核心操作:分支创建、代码开发、版本发布和合并管理。建议在实际项目中多加练习,同时结合GitHub的图形化界面进行辅助操作。记住,良好的版本控制习惯能显著提升团队协作效率,让代码迭代更加安全可控。

提示:可通过git helpgit <command> --help查看具体命令的详细文档

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

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

相关文章

MATLAB跳动的爱心

520&#xff0c;一个会动的心~~~ function particleHeart2 % author : slandarer% 所需匿名函数 col1Func(n) repmat([255,158,196]./255,[n,1])repmat([-39,-81,-56]./255,[n,1]).*rand([n,1]); col2Func(n) repmat([118,156,216]./255,[n,1])repmat([137,99,39].*.1./255,[n,…

Go的单测gomock及覆盖率命令

安装gomock&#xff1a; go get github.com/golang/mock/gomockgo get github.com/golang/mock/mockgen 使用 mockgen 生成 mock 代码: 参考 mockgen -sourceservice/user.go -destinationservice /mocks/mock_user_service.go -packagemocks go test -coverprofilecoverage.ou…

vue添加loading后修复页面渲染问题

问题&#xff1a;想要通过选择流程&#xff08;1&#xff09;后加载出角色信息&#xff08;2&#xff09; 选择后无法展示经过排查&#xff0c;再调用接口给角色数组赋值后&#xff0c;页面在接口调用完之前就已经渲染完成。接口是采用的异步加载解决&#xff1a;loadingRoles…

Python入门手册:Python简介,什么是Python

在当今数字化时代&#xff0c;编程语言犹如一把把神奇的钥匙&#xff0c;能够开启通往技术世界的大门。而Python&#xff0c;无疑是其中最闪耀的一颗明星。今天&#xff0c;就让我们一起走进Python的世界&#xff0c;从它的起源、应用领域以及优缺点三个方面&#xff0c;来全面…

用PyTorch在超大规模下训练深度学习模型:并行策略全解析

我猜咱们每个人肯定都累坏了&#xff0c;天天追着 LLM 研究社区跑&#xff0c;感觉每天都冒出个新的最牛模型&#xff0c;把之前的基准都给打破了呢。要是你好奇为啥创新速度能这么快&#xff0c;那主要就是研究人员能够在超大规模下训练和验证模型啦&#xff0c;这全靠并行计算…

提示工程(Prompt Engineering)应用技巧

Prompt&#xff08;提示&#xff09;就是用户与大模型交互输入的代称。即我们给大模型的输入称为 Prompt&#xff0c;而大模型返回的输出一般称为 Completion。 Prompt 需要清晰明确地表达需求&#xff0c;提供充足上下文&#xff0c;使语言模型能够准确理解我们的意图。更长、…

[原创](现代Delphi 12指南):[macOS 64bit App开发]: 如何获取目录大小?

[作者] 常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共24年] 职业生涯: 22年 开发语言: C/C++、80x86ASM、Object Pascal、Objective-C、C#、R、Python、PHP、Perl、 开发工具: Visual Studio、Delphi、XCode、…

Unity入门学习(四)3D数学(4)之四元数Quaternion

目录 一、什么是四元数 二、和欧拉角的关联以及为什么会出现四元数 三、四元数的基本组成 Unity中的表示&#xff1a; 四、四元数Quaternion这个类中具有的属性和方法 常用属性 核心方法 五、四元数之间的计算 1. 叉乘&#xff08;组合旋转&#xff09; 2. 点积&#…

活体检测接口全面评测:2025年活体检测选择指南

一、活体检测&#xff1a;数字化时代的身份验证基石 活体检测是一种通过分析人体生物特征动态变化来验证身份真实性的技术&#xff0c;其核心在于区分真实人体与伪造样本&#xff08;如照片、视频、3D 面具等&#xff09;。技术原理主要基于以下维度&#xff1a; 多模态数据采…

物联网工程毕业设计课题实践指南

1. 智能家居控制系统 1.1 基于ZigBee的智能家居控制 实践过程 硬件选型主控:CC2530/CC2531传感器:温湿度、光照、人体红外执行器:继电器、电机、LED灯系统架构 A[传感器层] --> B[ZigBee网络] B --> C[网关] C --> D[云平台] D --> E[手机APP] 开…

电网中窃电分析:概念、算法与应用

一、引言 在现代电力系统中&#xff0c;窃电行为是一个严重影响电网经济运行和供电秩序的问题。窃电不仅导致供电企业的经济损失&#xff0c;破坏了电力市场的公平性&#xff0c;还可能对电网的安全稳定运行构成威胁&#xff0c;甚至引发安全事故。随着科技的不断进步&#xff…

一洽小程序接入说明

接入说明 文档以微信小程序作为示例介绍&#xff0c;其他小程序接入操作与此类似 1、添加校验文件 开发者使用微信小程序提供的 webview 组件可以实现打开一洽的H5对话 小程序的“域名配置”中添加一洽的对话域名地址&#xff0c;需要获取校验文件提供给一洽放在域名根目录下…

【数据结构 -- AVL树】用golang实现AVL树

目录 引言定义旋转方式LL型RR型LR型RL型 实现结构获取结点高度平衡因子更新高度左旋右旋插入结点中序遍历 引言 AVL树&#xff0c;基于二叉搜索树通过平衡得到 前面我们知道&#xff0c;通过&#x1f517;二叉搜索树可以便捷快速地查找到数据&#xff0c;但是当序列有序时&am…

PyTorch图像识别模型和图像分割模型体验

文章目录 仓库地址练习&#xff1a;图像自动识别模型数据集说明模型训练和保存导入数据集搭建神经网络训练和保存实现 模型测试测试代码测试结果 练习&#xff1a;图像自动分割模型模型训练和保存加载数据集搭建神经网络训练和保存 模型测试测试代码测试效果 仓库地址 图像识别…

威纶通触摸屏IP地址设定步骤及程序下载指南

在使用威纶通触摸屏时&#xff0c;正确设定IP地址以及完成程序下载是确保其正常运行和实现功能的关键步骤。本文将详细介绍威纶通触摸屏IP地址设定步骤及程序下载的方法。 一、IP地址设定步骤 &#xff08;一&#xff09;前期准备 确保威纶通触摸屏已经通电并启动&#xff0…

一文读懂|大模型智能体互操作协议:MCP/ACP/A2A/ANP

导读 随着推理大模型的出现&#xff08;deepseek&#xff0c;Qwen3等&#xff09;&#xff0c;进一步地推进了大模型的智能体系统发展。然而&#xff0c;如何使智能体更好的调用外部工具&#xff0c;智能体与智能体之间如何有机地协作&#xff0c;仍然没有一个完美的答案。这篇…

前端下载ZIP包方法总结

在前端实现下载 ZIP 包到本地&#xff0c;通常有以下几种方法&#xff0c;具体取决于 ZIP 包的来源&#xff08;静态文件、后端生成、前端动态生成等&#xff09;&#xff1a; 方法 1&#xff1a;直接下载静态文件&#xff08;最简单&#xff09; 如果 ZIP 包是服务器上的静态…

简单使用Slidev和PPTist

简单使用Slidev和PPTist 1 简介 前端PPT制作有很多优秀的工具包&#xff0c;例如&#xff1a;Slidev、revealjs、PPTist等&#xff0c;Slidev对Markdown格式支持较好&#xff0c;适合与大模型结合使用&#xff0c;选哟二次封装&#xff1b;revealjs适合做数据切换&#xff0c…

数据挖掘:从数据堆里“淘金”,你的数据价值被挖掘了吗?

数据挖掘&#xff1a;从数据堆里“淘金”&#xff0c;你的数据价值被挖掘了吗&#xff1f; 在这个数据爆炸的时代&#xff0c;我们每天都在产生海量信息&#xff1a;社交媒体上的点赞、网购时的浏览记录&#xff0c;甚至是健身手环记录下的步数。这些数据本身可能看似杂乱无章…

程序运行报错分析文档

zryhuawei:~/src/modules/Connect$ ./newbuild/OpConnectAidTool \WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a future version. replace into process_tracking (step_id,date,status,context_data,start_time,end_time,error_log) values(?,?,?…