Git - 导出(archive)、忽略(gitignore)、隐藏(Stash)、合并冲突(merge)的解决方法

概述

本次集中总结了Git4个常规操作,导出(archive)、忽略(gitignore)、隐藏(Stash)、合并冲突(merge)的解决方法,希望帮助到正在辛苦寻找的你。

.gitignore忽略文件

之前开发和部署服务比较仓促,所以有很多图片文件一起加载到服务中,使得仓库代码922M,所以要分离出图片和忽略部分,推送代码的时候提示Push rejected for repository size exceeds limit.,说明Git仓库需要优化了。

首先导出之前Git
git archive --format=zip --output=output.zip HEAD
设置全局Git账号和邮箱
git config --global user.name "stark张宇"
git config --global user.email "15117995393@126.com"
gitignore的语法的前提

再设置.gitignore文件中gitignore的语法是关键的一个环节,它相当于一个规定好的匹配规则,可以设置忽略和不忽略等等条件,主要的应该还是忽略的部分,需要注意的是gitignore的语法只有在git的工作区中生效。

$ ll -a | grep .git
drwxr-xr-x  14 stark  staff   448B 10 10 15:31 .git
-rw-r--r--   1 stark  staff   348B 10 10 15:30 .gitignore

或者使用git remote -v来查看git仓库的url

$ git remote -v
origin	https://gitee.com/beijing-wolf-slaying-biology/demo.git (fetch)
origin	https://gitee.com/beijing-wolf-slaying-biology/demo.git (push)
.gitignore的语法

下面是一些常见的 .gitignore 文件语法规则:

1.空行或以#开头的行将被 Git 忽略,可以用作注释。

2.星号 * 代表零个或多个任意字符。例如, *.DS_Store 会匹配所有的 .DS_Store 文件。

3.问号 ? 代表一个任意字符。例如, ?.txt 会匹配 a.txt 但不会匹配 ab.txt。

4.方括号 [] 可以匹配括号内的任一字符。例如, [abc].txt 会匹配 a.txt,b.txt 和 c.txt。

5.两个星号 ** 表示任意中间目录。例如, **/foo 会匹配 foo,a/foo,a/b/foo 等。

6.前缀 ! 表示不忽略。例如, *.txt 和 !important.txt 会忽略所有的 .txt 文件,但不会忽略 important.txt。

  1. 前缀 / 表示只忽略当前目录下的文件。例如, /.idea/ 会忽略当前目录的 /.idea/ 文件。

8.后缀 / 表示只忽略目录。例如, /runtime/* 会忽略 runtime 目录下所有的 文件。

还有一个特殊情况,我新增一个/config/忽略这个文件夹的话,本地缓存删除(改变成未track状态),然后再提交,需要执行以下的命令:

git rm -r --cached .
git add .
git commit -m 'update .gitignore'

Stash 命令隐藏操作

Stash 命令常用于某个部分功能开发到一半而不得不中途修复bug,或者紧急切换分支,或者是对当前Git分支进行隔离,Stash命令的执行原理将一个新的存根推到堆栈上,运行git stash命令。

$ git status
On branch admin_purchase_202310modified:   app/admin/view/purchase/purchase/index.htmlmodified:   app/common/command/ScpSend.phpmodified:   public/pc/index.html

执行git stash后,当前分支就变成干净的工作区了,可以在使用git status查看

$ git stash
Saved working directory and index state WIP on admin_purchase_202310: c3ce01bc Merge branch 'images_perf_202310'$ git status
On branch admin_purchase_202310
nothing to commit, working tree clean

可以使用git stash list的命令来查看stash栈上的代码序列,使用git stash pop代码弹出栈。

git stash list
stash@{0}: WIP on admin_purchase_202310: c3ce01bc Merge branch 'images_perf_202310'

Git 代码冲突

多人开发代码难免遇到代码冲突的问题,Git版本中非常常见的地方,有两个特别需要注意,或者说容易忽略的点。

假设待上线分支是admin_purchase_202310,要发布一个版本的功能,要合并分支main,合并的前提是更新代码,保持代码是最新的在进行操作,发版要小心操作,合并之后要记得git push推送分支。

$ git pull
Already up to date.$ git merge admin_purchase_202310
Already up to date.$ git push
Everything up-to-date

当发生冲突时,先使用git status查看冲突的地方,一般有<<<字符做以区分。

合并分支,显示失败,合并中灵魂的一句命令, git merge –no-ff admin_purchase_202310

–no-ff指的是强行关闭fast-forward方式。fast-forward方式就是当条件允许的时候,git直接把HEAD指针指向合并分支的头,完成合并。属于“快进方式”,不过这种情况如果删除分支,则会丢失分支信息。因为在这个过程中没有创建commit。

git merge –squash

是用来把一些不必要commit进行压缩,比如说,你的feature在开发的时候写的commit很乱,那么我们合并的时候不希望把这些历史commit带过来,于是使用–squash进行合并,此时文件已经同合并后一样了,但不移动HEAD,不提交。

–no-ff:不使用fast-forward方式合并,保留分支的commit历史
–squash:使用squash方式合并,把多次分支commit历史压缩为一次

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

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

相关文章

python中的yolov5结合PyQt5,使用QT designer设计界面没正确启动的解决方法

python中的yolov5结合PyQt5&#xff0c;使用QT designer设计界面没正确启动的解决方法 一、窗体设计test: 默认你已经设计好了窗体后&#xff1a; 这时你需要的是保存生成的untitle.ui到某个文件夹下&#xff0c;然后在命令行中奖.ui转换为.py&#xff08;&#xff0c;通过​​…

抖音同城榜:探索城市新潮流

随着科技的飞速发展&#xff0c;短视频已经成为了人们日常生活中不可或缺的一部分。作为短视频领域的佼佼者&#xff0c;抖音一直致力于为用户带来更丰富、更有趣的短视频内容。抖音同城榜应运而生&#xff0c;成为了最新、最热门的话题聚集地&#xff0c;吸引了大量潮流达人和…

微信小程序之授权登录以及授权登录流程讲解

前言&#xff1a; 之前博主给大家介绍了小程序的授权登录案例&#xff0c;今天我使用结合项目&#xff0c;后台的方式来给大家展示 一&#xff0c;微信授权登录流程 步骤流程&#xff1a; 1.小程序调用wx.login() 获取 临时登录凭证code &#xff0c;并回传到开发者服务器 2.开…

Godot 官方2D C#重构(2):弹幕躲避

前言 Godot 官方 教程 Godot 2d 官方案例C#重构 专栏 Godot 2d 重构 github地址 实现效果 技术点说明 异步函数 Godot的事件不能在Task中运行&#xff0c;因为会导致跨线程的问题。 //这样是不行的&#xff0c;因为跨线程了&#xff0c;而且会阻塞UI线程&#xff0c;具体原因…

Java面试题(持续更新)

Java基础篇 修饰权限符 public: 可以被任何其他类访问。如果一个类是public的&#xff0c;那么你可以从任何其他类中访问它。protected: 可以被同一包内的任何类访问。可以被不同包中的子类访问。但是&#xff0c;它不能被其他不同包中的非子类访问。(default) package-priva…

DELTA TAU ACC-24E2A 如何开始学习机器人技术

DELTA TAU ACC-24E2A 如何开始学习机器人技术 如果你想成为机器人革命的一部分(彻底改变我们的生活和工作方式&#xff0c;而不是真正推翻人类)&#xff0c;Simplilearn有你需要的东西。这人工智能和机器学习训练营与IBM和加州理工学院合作&#xff0c;涵盖了与机器人相关的重…

DLP是如何防止数据泄露的?

根据相关调查数据&#xff0c;未来五年全球企业数据泄露防护&#xff08;DLP&#xff09;市场预计将以21.03%的复合年增长率高速增长&#xff0c;到2026年市场规模将达到62.65亿美元。 PC访问地址&#xff1a;获取详细资料 https://isite.baidu.com/site/wjz012xr/2eae091d-1b…

【Javascript】构造函数的参数写法

目录 写法一&#xff08;固定参数&#xff09;&#xff1a; 写法二&#xff08;对象类型的参数&#xff09; 写法一&#xff08;固定参数&#xff09;&#xff1a; 如果参数与参数的值不对应 写法一 要求位置严格对应&#xff0c;明确知道对象的属性 写法二&#xff08;对象类…

Shader Graph25-UV移动旋转缩放(自定义函数)

我们将UV操作放入函数内&#xff0c;该函数的内容来自我之前的文章 Shader Graph24-摇晃树叶-CSDN博客 一、UE在Material中右键&#xff0c;新建Material Function。 增加输入 二、新建Material&#xff0c;命名为DemoUVRotationUseFunction Offset为偏移值&#xff0c;Rotat…

Vue基础与常用指令,Element基础

1.vue快速入门 vue概述 Vue是一套构建用户界面的渐进式前端框架 只关注视图层&#xff0c;并且非常容易学习&#xff0c;还可以很方便的与其它库或已有项目整合 通过尽可能简单的API来实现响应数据的绑定和组合的视图组件 特点 易用&#xff1a;在有HTMLCSSJavaScript的基…

Python 机器学习入门之K-Means聚类算法

系列文章目录 第一章 Python 机器学习入门之线性回归 K-Means聚类算法 系列文章目录前言一、K-Means简介1、定义2、例子3、K-Means与KNN 二、 K-Means实现1、步骤2、优化2.1 初始化优化之K-Means2.2 距离优化之elkan K-Means 三、优缺点1、优点2、缺点 前言 学完K近邻算法&a…

操作系统【OS】进程的通信

共享存储 各个进程对共享空间的访问应该是互斥的&#xff08;可以使用P、V操作&#xff09;低级通信 基于数据结构的共享速度慢、限制多高级通信 基于存储区的共享数据的形式、存放的位置由通信进程控制速度快 消息传递 进程间的数据交换以格式化的消息为单位 消息头&#…

qt配置halcon环境实现读入图像显示

首先&#xff0c;在Halcon里面写流程。 *读入图像 read_image (Image, cat) *获取图片大小 get_image_size (Image, Width, Height) *设置适应大小显示 dev_set_part (0, 0, Height-1, Width-1) *显示图像 dev_display (Image) 菜单栏的文件->导出程序备用。 QT新建工程&a…

JavaPTA练习题 7-5 输出所有的水仙花数

输出所有的水仙花数。所谓的水仙花数是指一个三位数&#xff0c;其各位数字的立方和等于该数本身。 举例&#xff1a;153就是一个水仙花数。 153 1*1*1 5*5*5 3*3*3 1 125 27 153 请注意&#xff1a;含有main方法的类&#xff08;class&#xff09;的名字必须命名为Main…

WebSocket 入门案例

目录 WebSocket入门案例WebSocket-server新增项目:添加依赖:yml:启动类&#xff1a; frontend-server前端项目&#xff1a;添加依赖&#xff1a;添加yml&#xff1a;启动类&#xff1a;前端引入JS:前端页面&#xff1a;后端代码&#xff1a;测试&#xff1a; WebSocket 入门案…

RabbitMQ官方案例学习记录

官方文档&#xff1a;RabbitMQ教程 — RabbitMQ (rabbitmq.com) 一、安装RabbitMQ服务 直接使用docker在服务器上安装 docker run -it -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.12-management 安装完成后&#xff0c;访问15672端口&#xff0c;默认用户…

vmware 16pro安装 mac10.14.6,期间遇到的问题

1、分配硬盘内存尽量分大点&#xff0c;建议是40g&#xff0c;我分了80g&#xff0c;后面下载解压xcode发现还不够&#xff0c;又增加最后分了120g 2、安装过程&#xff0c;卡在选语言的地方&#xff0c;鼠标和键盘无法操作。需要在虚拟机设置中&#xff0c;勾选以下选项“显示…

记录--怎么写一个可以鼠标控制旋转的div?

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 说在前面 鼠标控制元素旋转在现在也是一个很常见的功能&#xff0c;让我们从实现div元素的旋转控制开始来了解元素旋转的具体原理和实现方法吧。 效果展示 体验地址 code.juejin.cn/pen/7290719… 实现…

C++设计模式_08_Factory Method工厂方法模式

文章目录 1. “对象创建模式”模式1.1 典型模式 2. 动机&#xff08;Motivation&#xff09;3. 代码演示Factory Method工厂方法模式3.1 常规方法3.2 面向接口的编程3.2.1 FileSplitter1.cpp3.2.2 MainForm1.cpp 3.3 Factory Method工厂方法3.3.1 ISplitterFactory.cpp3.3.2 Ma…

只需五步,在Linux安装chrome及chromedriver(CentOS)

一、安装Chrome 1&#xff09;先执行命令下载chrome&#xff1a; wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm2&#xff09;安装chrome yum localinstall google-chrome-stable_current_x86_64.rpm看到下图中的Complete出现则代表安装…