vue3组件库项目学习笔记(八):Git 使用总结

news2024/11/27 13:50:38

目前组件库的开发已经接近尾声,因为这次是使用 git 进行协作的开发模式,在团队协作的时候遇到很多的问题,开发过程中发现小伙伴们对于 git 的使用还不是很熟练,这里就简单总结一下常用的 git 的操作,大致有:

  • 项目开发如何 fork / pr 的模式进行开发
  • 怎么样处理冲突
  • 怎么样忽略文件并且取消追踪

关于组件库代码,想要看代码的可以直接前往我的 github:https://github.com/aiai0603/seven-bit-ui

想要看组件库文档代码的可以前往:https://github.com/aiai0603/seven-bit-docs

想要使用我的组件库的可以直接下载:seven-bit-ui (原来的名字被占用了所以我换了一个)

协作开发的模式

目前大多数团队是基于 fork 主仓库然后 pr 的模式进行开发,由项目负责人创建一个仓库,一般是主分支 master 是受保护的分支,其他人不能随意修改这个分支,从而让这个分支保存我们完整代码。之后可以创建一些其他的分支,比如 test 分支作为我们开发特定功能的测试分支

请添加图片描述

对于每一个合作开发者,他们需要 fork 我们的仓库到本地,之后使用 fork 的仓库进行开发

请添加图片描述

如果一个开发者想要将他的代码提交到我们的仓库,他需要通过 pull requests 功能进行开发

请添加图片描述

选择你需要提交的分支和你需要提交到的分支,之后就可以创建一个 pr ,你需要填写一些信息,一般是你的分支新增了什么内容,修改了什么问题,对什么文件进行了修改等内容

请添加图片描述

这里要注意,可以看到右侧有一个 Able to merge 表示,这表示本次提交不会产生冲突,当你和另一位开发者都修改了某项内容的时候,就会产生冲突,如果你的分支产生了冲突,那么主仓库的作者是不能合并的,需要处理冲突:

请添加图片描述

如果没有冲突就可以自动合并:

请添加图片描述

冲突解决

如果你的代码与主仓库产生了冲突,那么你需要解决冲突才能进行你的 pr ,如果你使用 vscode 开发,方案如下:

  • 首先在你的本地代码文件中拉取远程仓库

    git pull https://github.com/aiai0603/seven-bit-ui.git master
    # git pull 主仓库地址 主仓库分支
    
  • 之后你可以在 vscode 里可视化解决冲突

请添加图片描述

  • 解决完冲突以后使用 vscode 合并冲突,再提交你的代码即可

由其他人的 pr 被合并后,你可以在 github 使用 sync fork 功能来同步同步主仓库的代码:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZG04ULAX-1676036148266)(.\img\13.png)]

如果同步失败,你需要在 vscode 拉取代码解决冲突

git pull https://github.com/aiai0603/seven-bit-ui.git master
# git pull 主仓库地址 主仓库分支

拉取代码到本地

当你同步了代码之后,你会希望将代码拉取到本地,但是你可能有还在开发的版本没有提交,你不需要这些代码受到影响,你可以使用stash 来解决这个问题:

  • 首先你使用 vscode 暂存你的代码

  • 之后你输入以下命令,这个操作将你的代码暂存到一个栈中,你可以多次 stash 代码

    git stash
    
  • 之后你可以将远程仓库的代码拉取到本地

  • 之后你将你刚刚存储起来的代码抛出,在你 pop 一次缓存后,它将消失

    git stash pop
    

忽略提交的文件

  • 忽略文件

有时候你想要不提交某些文件到远程仓库,比如我不想把我本地编写的用于测试我的组件的代码提交上去,你可以将你的代码写入 .gitignore 文件,这个文件的写法是:

1)空格不匹配任意文件,可作为分隔符,可用反斜杠转义

2)以“”开头的行都会被 Git 忽略。即#开头的文件标识注释,可以使用反斜杠进行转义。

3)可以使用标准的glob模式匹配。所谓的glob模式是指shell所使用的简化了的正则表达式。

4)以斜杠"/“开头表示目录;”/“结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件;”/"开始的模式匹配项目跟目录;如果一个模式不包含斜杠,则它匹配相对于当前 .gitignore 文件路径的内容,如果该模式不在 .gitignore 文件中,则相对于项目根目录。

5)以星号"“通配多个字符,即匹配多个任意字符;使用两个星号”*" 表示匹配任意中间目录,比如a/**/z可以匹配 a/z, a/b/z 或 a/b/c/z等。

6)以问号"?"通配单个字符,即匹配一个任意字符;

7)以方括号"[]"包含单个字符的匹配列表,即匹配任何一个列在方括号中的字符。比如[abc]表示要么匹配一个a,要么匹配一个b,要么匹配一个c;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配。比如[0-9]表示匹配所有0到9的数字,[a-z]表示匹配任意的小写字母)。

8)以叹号"!“表示不忽略(跟踪)匹配到的文件或目录,即要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。需要特别注意的是:如果文件的父目录已经被前面的规则排除掉了,那么对这个文件用"!"规则是不起作用的。也就是说”!“开头的模式表示否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用”!"也不会再次被包含。可以使用反斜杠进行转义。

git对于.ignore配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;

提供一篇详细的文档供大家参考:https://www.cnblogs.com/kevingrace/p/5690241.html

  • 取消追踪

当然这里有一个问题,如果我们已经追踪了某个文件,比如我们已经提交过 a.vue 这个文件,git 已经追踪了文件,那么即使我们后续将他提交到了 .gitignore 文件中,它的修改依旧会被追踪,对此我们需要清理 git 的追踪:

git rm --cached readme1.txt 删除readme1.txt的跟踪,并保留在本地。

git rm -r --cached dir1  删除dir1目录的跟踪,并保留在本地。

git rm --f readme1.txt 删除readme1.txt的跟踪,并且删除本地文件。

在取消的追踪之后我们的修改就产生提交了

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

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

相关文章

Revit快速材质切换:同一墙面赋予不同材质的方法

一、Revit中对同一墙面赋予不同材质的方法 方法1:零件法 重点:通过工作平面面板上的设置工作平面命令选取正确的面取消勾选通过原始分类的材质,如图1所示 方法2:拆分构造层绘制一道墙体,选择创建的墙体,单击…

判断元素是否在可视区域

前言 在日常开发中,我们经常需要判断目标元素是否在视窗之内或者和视窗的距离小于一个值(例如 100 px),从而实现一些常用的功能,例如: 图片的懒加载列表的无限滚动计算广告元素的曝光情况可点击链接的预加…

关于TL431和光耦PC817反馈控制部分电阻取值计算

计算R4和R3。TL431的R端流入电流2uA,为了保证取样精度,即不让TL431的R端吸取电流参与R3和R4的分压,可以设置R4的电流大于TL431的R端吸取电流的100倍,此时工程实践上基本可以忽略掉TL431的R端吸取电流的影响了。R4电流最小为2uA*10…

CSS基础:选择器和声明样式

CSS概念 CSS(Cascading Style Sheets)层叠样式表,又叫级联样式表,简称样式表 CSS用于HTML文档中元素样式的定义 使用css让网页具有美观一致的页面 语法 CSS 规则由两个主要的部分构成:选择器和声明样式 选择器通常…

DaVinci:色度 - 亮度网格应用

调色页面:色彩扭曲器 Color:Color Warper色彩扭曲器中的色度 - 亮度 Chroma - Luma网格提供了强大且直观的调色功能,相对于色相 - 饱和度网格,色度 - 亮度网格在颜色的亮度控制上更具优势。在使用网格调色之前,最好先确…

DOM编程-复选框的全选和取消全选

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>复选框的全选和取消全选</title> </head> <body> <script type"text/javascript"> …

LoadRunner

目录 为什么需要性能测试 性能测试实施流程 常见的性能测试指标 性能测试分类 1、一般性能测试 2、负载测试 3、压力测试 LoadRunner LoadRunner包括三个组件 VUG Controller Analysis 一个网站或者app的性能差&#xff0c;用户的使用体验就会很差 常见的性能问题&a…

LabVIEW中使用.NET方法时出现错误1316

LabVIEW中使用.NET方法时出现错误1316为什么不能调用带有泛型参数的方法&#xff1f;LabVIEW不支持哪些.NET功能&#xff1f;为什么会收到以下错误&#xff1a;发生此错误的原因是正在调用LabVIEW中不支持的.NET功能。有关解决方法&#xff0c;请参阅“其他信息”部分。可以在下…

04- Matplotlib数据可视化详解 (数据库)

Matplotlib的亮点: import matplotlib.pyplot as plt # 导包plt.figure(figsize (9, 6) , 设置图片大小plt. plot(x, y), 画图绘制网格线: 线型, 颜色, 透明度plt.grid(linestyle --, color green, alpha0.75) # linestyle: 样式, color: 颜色, alpha: 透明度plt.axis(…

【堆】数据结构堆的实现(万字详解)

前言&#xff1a; 在上一期中我们讲到了树以及二叉树的基本的概念&#xff0c;有了之前的认识&#xff0c;今天我们将来具体实现一种二叉树的存储结构“堆”&#xff01;&#xff01;&#xff01; 目录1.二叉树顺序结构介绍2.堆的概念及结构3.调整算法3.1向上调整算法3.1.1算法…

消息中间件-RocketMQ入门 消息发送的三种方式

消息中间件-RocketMQ入门 消息发送的三种方式消息中间件简介应用场景常用消息中间件RocketMQ核心概念入门案例-生产者和消费者代码逻辑消息发送的三种方式同步发送异步发送一次性消息消息中间件简介 应用场景 假设现在有订单微服务和积分微服务,正常请求流程之后是不是一个订…

Java程序员:为了跳槽刷完1000道真题,想不到老板直接给我升职了

同事&#xff1a;前阵子听说你要跳槽&#xff0c;现在准备得怎么样啊&#xff1f; 程序员T&#xff1a;不跳了 同事&#xff1a;啊&#xff1f;为什么&#xff1f; 程序员T&#xff1a;涨薪了呗&#xff1f; 同事&#xff1a;真的吗&#xff1f;涨了多少&#xff1f;你自己…

DAMA数据管理知识体系指南之文档和内容管理

第10章 文档和内容管理 10.1 简介 文档和内容管理是对存储在关系数据库以外的信息的采集、存储、访问以及使用的控制活动。文档和内容管理的侧重点在完整性和访问控制上。因此&#xff0c;它与关系数据库的数据操作管理大致相同。由于多数非结构化数据与存储在结构化文件中的…

数据存储技术复习(四)未完

1.什么是NAS。一般用途服务器与NAS设备之间有何不同。NAS是一个基于IP的专用高性能文件共享和存储设备。—般用途服务器可用于托管任何应用程序&#xff0c;因为它运行的是一般用途操作系统NAS设备专用于文件服务。它具有专门的操作系统&#xff0c;专用于通过使用行业标准协议…

151、【动态规划】leetcode ——2. 01背包问题:二维数组+一维数组(C++版本)

题目描述 原题链接&#xff1a;2. 01背包问题 解题思路 &#xff08;1&#xff09;二维dp数组 动态规划五步曲&#xff1a; &#xff08;1&#xff09;dp[i][j]的含义&#xff1a; 容量为j时&#xff0c;从物品1-物品i中取物品&#xff0c;可达到的最大价值 &#xff08;2…

算法顶级比赛汇总

可参赛的算法比赛 阿里云天池大数据竞赛 时间&#xff1a;每年各个季度很多类型都会出题&#xff08;比赛总时间大概为两个月&#xff09; 内容&#xff1a;各个类型的算法题都会出、奖金上万不等 形式&#xff1a;在线提交&#xff08;提交后在线检查结果&#xff09;、离线…

简洁易懂:源码+实战讲解Redisson并发锁及看门狗自动续期

1 缘起 有一次同事问Redisson存储的键是否为hash&#xff1f; 我当时&#xff0c;没有看Redisson的相关源码&#xff0c;只知道应用&#xff0c; 所以没有办法回答&#xff0c;于是开始看看Redisson实现的源码&#xff0c; 顺便写了一个单机Redisson测试&#xff0c; 发现Redi…

leaflet 加载CSV数据,显示图形(代码示例046)

第046个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中加载CSV文件,将图形显示在地图上。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果; 注意如果OpenStreetMap无法加载,请加载其他来练习 文章目录 示例效果配置方式示例源代码(共74…

海思3559:BT656调试笔记

前言 海思3559a的sdk例子是没有提供BT1120和BT656视频接入的&#xff0c;但实际上硬件是可以支持接入的。不过前提是只支持逐行方式输入&#xff0c;不支持隔行视频&#xff0c;如果想输入PAL制式的隔行视频&#xff0c;请先用芯片转成逐行再接入。不知道是官方手册有意无意的忽…

弄懂自定义 Hooks 不难,改变开发认知有点不习惯

前言 我之前总结逻辑重用的时候&#xff0c;就一直在思考一个问题。 对于逻辑复用&#xff0c;render props 和 高阶组件都可以实现&#xff0c;同样官方说 Hooks 也可以实现&#xff0c;且还是在不增加额外的组件的情况下。 但是我在项目代码中&#xff0c;没有找到自定义 …