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

news/2024/7/10 2:38:36 标签: git, 学习, github, 前端, vue

目前组件库的开发已经接近尾声,因为这次是使用 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.niftyadmin.cn/n/54174.html

相关文章

Linux实用指令记录

du Linux du(英文全拼:disk usage)命令用于显示目录或文件的大小。du 会显示指定的目录或文件所占用的磁盘空间。用例:当前路径/home/hzf/Voice/wespeaker-master$ du -h -d 1 371G ./examples 52K ./tools 280K ./run…

【视觉检测】使用opencv编写一个图片缺陷检测流程

1. 导入必要的库,如OpenCV,NumPy等。 2. 使用OpenCV读取图像,并将其转换为灰度图像。 3. 使用OpenCV的Canny边缘检测算法检测图像中的边缘。 4. 使用OpenCV的Hough变换算法检测图像中的线条。 5. 使用OpenCV的模板匹配算法检测图像中的缺…

Java:使用Java功能确保应用程序安全的方法

与添加新功能一样重要的是,应用程序开发人员需要开始更加重视他们设计的应用程序的安全性。毕竟,更多的应用程序功能意味着更多的数据驻留在应用程序中。如果没有适当的安全控制,这些数据很容易被入侵者窃取。Java是目前世界上最安全、最流行…

强大的ChatGpt为企业营销推广提供了全方位的加持

chatgpt,一个火出圈的“聊天机器人”。从写作文,到写代码,似乎没有什么是它干不了的。 ChatGpt在工业中的应用场景有哪些? 在工业领域,它可以用于提高生产效率,缩短生产周期,并帮助工人解决生产过程中的问…

在Linux上安装Python3

记录:373场景:在CentOS 7.9操作系统上,安装Python-3.8.9环境。版本:JDK 1.8 Python-3.8.9官网地址:https://www.python.org下载地址:https://www.python.org/ftp/python/1.安装基础依赖1.1安装gcc(1)安装命…

基于python下selenium库实现交互式图片保存操作(批量保存浏览器中的图片)

Selenium是最广泛使用的开源Web UI(用户界面)自动化测试套件之一,可以通过编程与浏览量的交互式操作对网页进行自动化控制。基于这种操作进行数据保存操作,尤其是在图像数据的批量保存上占据优势。本博文基于selenium 与jupyterla…

FANUC机器人UI[4]_CSTOPI循环停止信号使用时的注意事项

FANUC机器人UI[4]_CSTOPI循环停止信号使用时的注意事项 前面已经和大家介绍了关于FANUC机器人的UOP信号的具体功能,具体可参考以下链接中的内容: FANUC机器人UOP信号(UI+UO)功能详细介绍 本次关于FANUC机器人的UI[4] CSTOPI循环停止信号使用时的注意事项进行一个补充说明。…

[oeasy]python0080_设置RGB颜色_24bit_24位真彩色_颜色设置

RGB颜色 回忆上次内容 上次 首先了解了 索引颜色 \33[38;5;XXXm 设置 前景为索引色\33[48;5;XXXm 设置 背景为索引色 RGB每种颜色 可选0-5总共 6 级 想用 精确RGB值 真实地 大红色画个 大红桃心 ♥️ 有可能吗??🤔 rgb 模式 关于 RGB 模式…