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

这篇具有很好参考价值的文章主要介绍了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_202310
	modified:   app/admin/view/purchase/purchase/index.html
	modified:   app/common/command/ScpSend.php
	modified:   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历史压缩为一次文章来源地址https://www.toymoban.com/news/detail-723090.html

到了这里,关于Git - 导出(archive)、忽略(gitignore)、隐藏(Stash)、合并冲突(merge)的解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GIt系列(二)忽略文件(.gitignore)

    如果你不想让本地仓库的所有文件都上传到远程仓库中,而是有选择的上传一部分的文件,比如说依赖文件,测试文件你不想提交, 可以通过 \\\".git目录 \\\" 下的 .gitignore 文件,选择忽略这些文件。 工作区:包含 .git目录的上一级目录,详见:GIt系列(一)中的工作区(Working

    2024年02月15日
    浏览(43)
  • Git忽略文件的几种方法,以及.gitignore文件的忽略规则

    在使用Git的过程中,我们喜欢有的文件比如日志,临时文件,编译的中间文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交。 规则作用示例: /mtk:过滤整个文件夹; *.zip:过滤所有.zip文件; /mtk/do.c:过滤某个具体文件; !/mtk/one.txt:追踪(

    2024年02月11日
    浏览(34)
  • git如何使用.gitignore文件设置忽略文件规则

    我们使用git进行版本控制的过程中,会希望一些文件不要进行提交,那这个时候就可以利用一些方法达到这个目的,这篇文章讨论一下如何使用.gitignore文件来进行忽略的方法。 先简单讨论一下常用的.gitignore文件编写规则,其实比较像正则表达式中的一些内容。 一行表示一个

    2024年02月03日
    浏览(36)
  • git如何忽略指定文件以及gitignore相关知识

    文章概要 :本文主要介绍了git中如何忽略指定文件,包括已经commit了的文件。解释了gitignore文件的写法以及提供了常见的gitignore模版。 本文内容来自:谷流仓AI - ai.guliucang.com 在平常写代码使用git的过程中,我们项目有些文件是不适合提交到仓库的,因此需要让git忽略这些文

    2024年04月25日
    浏览(25)
  • Git中.gitignore的配置(git上传忽略文件/文件夹)

            在实际开发过程中,我们很多项目都需要使用git工具进行代码的拉取和提交等操作。但项目由于环境配置和打包等操作生成了一些不必要上传的文件夹或者一些我们自定义的文件不需要上传,这时候我们需要去配置.gitignore文件。 语法 # 开头为注释行 空行即直接写文

    2024年02月12日
    浏览(47)
  • git 添加 .gitignore文件,忽略不需要提交的文件

    目录 1.什么是.gitignore文件? 2..gitignore文件怎么添加? 3.gitignore文件添加后效果 4.gitignore文件添加后不生效怎么办? 1.什么是.gitignore文件?     当使用git进行项目管理时候,只需要提交自己想要提交的代码文件,一些编译或者工具产生的文件是不希望被提交的,那么.gitigno

    2024年02月04日
    浏览(47)
  • git忽略文件.gitignore失效分析与解决方案

    git忽略文件.gitignore失效分析与解决方案 最近学习谷粒商城的时候使用了人人快速开发平台,但是我提交到gitee的文件希望不提交人人项目,但是由于事先已经将人人项目纳入了版本控制,此时在.gitignore中添加人人项目,gitignore就失效了。 此时,我们可以采用以下两种方式让

    2024年02月14日
    浏览(25)
  • Git忽略提交(.gitignore文件)配置规则使用说明

     目录 前言 一、使用说明 Git是一个广泛使用的分布式版本控制系统,它允许开发者在本地提交和跟踪代码更改,然后将这些更改传输到远程仓库。在Git中, .gitignore 文件用于指定一些特定的文件或文件夹在提交时不被跟踪。这些文件和文件夹不会被Git添加到版本控制系统中

    2024年02月11日
    浏览(34)
  • 【转】git如何使用.gitignore文件设置忽略文件规则

    目录 一.前言 二.讨论一下.gitignore文件规则 三.具体.gitignore文件写法示例 四.讨论一下.gitignore文件规则的生效优先级 五.其他 一.前言 我们使用git进行版本控制的过程中,会希望一些文件不要进行提交,那这个时候就可以利用一些方法达到这个目的,这篇文章讨论一下如何使用

    2024年01月17日
    浏览(58)
  • 代码仓库必知:git忽略文件规则。问题解决: gitignore文件没有忽略某个文件,就是提交不了

    问题背景 假设我的文件叫a.tsx,在 git status 时检测不到它的改动记录,并且 git commit 不了! 强制推才可以。这样会影响开发进度,因为我们经常需要提交代码,但是不一定记得强推,这样代码就会丢失。只在本地可以运行,远程仓库并没有。 在VSCode 编辑器的左侧文件栏中,

    2024年02月10日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包