没用过.gitignore还敢自称高级开发?

Git是跟踪项目中所有文件的好工具, 但是,您会希望在项目的整个生命周期中不要跟踪某些文件及其变更

  • 系统文件(i.e. Mac系统的.Ds_Store)

  • 应用程序配置文件(i.e. app.config, .env)

  • 构建组件(i.e. *.pyc)

  • 安装的依赖(i.e. node_modules)

  • 个人文件(i.e. todo.txt)

  • 应用程序数据和日志(i.e. .log,.sqlite)

Git中gitignore概念:以.gitignore文件定义哪些文件将被Git排除跟踪, 被.gitignore匹配到的文件将不会显示在Git的Untracked files列表。

使用.gitignore防止跟踪文件

.gitignore文件控制Git仓库中应排除跟踪的文件(可由文件类型、路径、通配符等确立)。

  1. Visual Studio
    使用VS为项目创建(或连接)代码仓库时,Visual Studio自动在仓库中创建.gitignore文件

  2. 下载.gitignore模板
    从https://github.com/github/gitignore下载特定项目类型的.gitignore文件模板,修改以充分适配你的项目

Git将.gitignore应用于文件夹及其子文件夹,建议您将.gitignore放在存储库的根文件夹中,以免造成混淆。

实践中有时会在项目子目录嵌套定义.gitignore文件, 虽然不常见,但对于有特定规则的子目录,嵌套定义.gitignore文件有用。

自定义.gitignore

只要你修改了.gitignore文件,Git立即开始忽略这些文件;如果你希望团队成员都忽略相同的文件,请提交这次git变更。
.gitignore中的每一行都排除一个文件或一组(与模式匹配的)文件,  .gitignore语法很灵活:

# 忽略单个文件
mycode.class# 忽略整个目录
/mydebugdir/# 忽略文件类型
*.json# 将前置规则取反,这个文件将被Git跟踪
!package.json

Windows使用者注意:.gitignore文件中的路径使用正斜杠分隔符,而不是反斜杠

对已提交文件忽略变更

临时忽略变更

在开发阶段,有时候要临时忽略文件变更,特别是你拿到源代码需要针对本地环境做一些修改时有用

git update-index --skip-worktree <file>

恢复文件追踪

git update-index --no-skip-worktree <file>

永久忽略文件变更

如果文件已经被Git跟踪,再将这个文件添加到.gitignore文件并不会忽略文件变更。
你需要从Git Index中移除这个文件的信息:

  1. 在.gitignore文件中添加这个文件

  2. 从Index移除文件信息

git rm --cached  <file>
  1. 提交删除文件和更新的.gitignore到您的仓库

以上步骤不会从系统中删除文件,只是告诉Git以后忽略该文件的变更

附1. 仅在个人系统中忽略文件
.gitignore文件被提交并推送之后,就会在团队共享。
若只想在你的系统上排除文件,请编辑仓库中的.git/info/exclude文件: 修改这个文件不会共享给其他人,这个动作只对这个仓库有效

附2. 系统中跨仓库忽略文件
利用git config工具建立全局.gitignore文件,

git config core.excludesfile C:\Users\frank\.gitignore_global

这个操作帮助你全局忽略绝不会提交的文件类型,比如编译文件

总结

通过本文你将学习到:

  1. 使用.gitignore阻止Git跟踪文件

  2. 对已提交的文件忽略变更
    附1. 只在个人系统上忽略文件
    附2. 在个人系统上跨仓库忽略文件

Git为我们提供一种机制,告诉我们不应在存储库中跟踪哪些文件, 这是一项强大的功能。丰富的语法以及层次结构,更好地控制哪些文件被忽略以及哪些文件未被忽略。

  • https://docs.microsoft.com/en-us/azure/devops/repos/git/ignore-files?view=azure-devops&tabs=visual-studio

推荐阅读

● 这么香的Chrome插件,你都安装了吗?

● 一文掌握Cookies前世今生

● ASP.NET Core跨平台技术内幕

● TPL Dataflow组件应对高并发,低延迟要求

● 使用Docker-Compose搭建高可用redis哨兵集群

● 使用浏览器嗅探解决部分浏览器丢失Cookie问题

戳原文,更有料!

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

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

相关文章

支付价格计算中精度问题之double,float

前言 前段时间开发新的微信小程序&#xff0c;借此机会将老掉牙的支付模块重构&#xff0c;并且支持现金支付&#xff08;之前都是虚拟币支付&#xff09;&#xff0c;在重构期间遇到计算上的一些精度问题&#xff0c;虽然数额影响非常小但是影响比较大&#xff0c;我觉得有必…

.net core 集成 sentry 进行异常报警

.net core 集成 sentry 进行异常报警IntroSentry 是一个实时事件日志记录和汇集的平台。其专注于错误监控以及提取一切事后处理所需信息而不依赖于麻烦的用户反馈。它分为客户端和服务端&#xff0c;客户端(目前客户端有 C#, Python, PHP, JavaScript, Ruby等多种语言)就嵌入在…

[Qt入门]QTableWidget控件创建

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);//TableWidget控件//设置列数ui->tableWidget->setColumnCount(3);//设置水平表头ui->tableWidget->…

Zookeeper--Watcher机制源码剖析一

Watcher-- 数据变更通知 我们知道Zookeeper提供来分布式数据的订阅/发布功能&#xff0c;一个典型的发布/订阅模型系统定义了一种一对多的订阅关系&#xff0c;能让多个订阅者同时监听某个主题对象&#xff0c;当这个被监听对象自身状态发生变化时候&#xff0c;会通知所有订阅…

.NET Core 3.1 的REST 和gRPC 性能测试

看到越南小哥 的github 上的Evaluating Performance of REST vs. gRPC &#xff0c; 使用的是.NET Core 3.0 , 今天我把它升级到.NET Core 3.1 同样做了一个测试&#xff0c;文章的结果和他的博客文章是一样的&#xff1a;https://dev.to/thangchung/performance-benchmark-grp…

Zookeeper--Watcher机制源码剖析二

Watcher触发 我们从实际操作时候的表现来看Watcher的触发&#xff0c;比如Zookeeper中NodeDataChanged时间的触发是“Watcher监听的对应数据节点的数据内容发生变更”&#xff0c;需要修改节点数据那么必然和数据节点存储的位置DataTree有关系&#xff0c;我们从这里去寻找修改…

吴军《硅谷来信》工作篇学习总结

【学习总结】| 作者 / Edison Zhou这是恰童鞋骚年的第215篇原创文章2018年在得到App上订阅了吴军老师的《硅谷来信》&#xff0c;从此每天的碎片时间就开始听吴军老师在大洋彼岸寄来的信件了。整个来信涵盖了职业发展、工作效率、业余生活等多个主题&#xff0c;从吴军老师的视…

Zookeeper实践与应用-- Nginx负载均衡差异

Nginx/ZooKeeper 负载均衡的差异 Nginx 是我们常见的反向代理服务器&#xff0c;也被广泛的用作负载均衡服务器ZooKeeper是分布式协调服务框架&#xff0c;有时也被用来做负载均衡 Nginx Nginx负载均衡配置非常简单&#xff0c;吧多个Web Server配置到nginx中&#xff0c;用…

从对我的质疑说起,谈谈Linux下的文件删除

特特本来就是个刚毕业的小菜&#xff0c;很多知识都是靠着大家的指点才慢慢学会的。之前在一篇"纯属虚构"的文章 (鹅厂后台开发工程师的工作日常) 提到使用 rm 命令删除一个近 100 G 的 log 文件。很荣幸&#xff0c;这篇文章被一个大号转载了&#xff0c;获得了很不…

Zookeeper实践与应用--分布式锁实现

分布式锁 分布式锁是控制分布式系统之间同步访问资源的一种方式&#xff0c;如果不同系统是同一个系统的不同主机之间共享一个或一组资源&#xff0c;那么访问这些资源的时候&#xff0c;往往需要通过一些呼哧手段来防止彼此之间的干扰保证统一性&#xff0c;因此需要分布式锁…

关于 Blazor Server Side 的一些杂项, 感想

在2016年, 本人就开始了一个内部项目, 其特点就是用C#构建DOM树, 然后把DOM同步到浏览器中显示. 并且在一些小工程中使用.3年下来, 效果很不错, 但因为是使用C#来构建控件树, 在没有特定语法的情况下, 代码风格不是那么好.典型的风格大概是这样的:这个模式挺好的, 有点嫌弃C#代…

重现江湖!大数据高并发——架构师秘籍

大数据高并发的话题屡见不鲜&#xff0c;各种应对的方式方法也四处可见。然而笔试面试中一问就懵&#xff0c;简直是高薪拦路虎。为什么呢&#xff1f;究其原因&#xff0c;还是思路不清晰&#xff0c;缺乏实操&#xff0c;所以一问就倒。作为专注.Net领域十几年的老司机&#…

[剑指offer]面试题4:替换空格

面试题4&#xff1a;替换空格 题目&#xff1a;请实现一个函数&#xff0c;把字符串中的每个空格替换成"%20"。例如输入“We are happy.”&#xff0c;则输出“We%20are%20happy.”。 ❖ 时间复杂度为O&#xff08;n2&#xff09;的解法&#xff0c;不足以拿到Offer…

Zookeepe实践与应用--分布队列

分布式队列 接触到不少分布式队列的产品&#xff0c;比如&#xff0c;ActiveMq&#xff0c;RocketMQ&#xff0c;kafka等消息中间价&#xff0c;现在我们看看Zookeeper实现的分布式队列。分布式队列简单讲就可以分两个部分&#xff0c;一种是先进先出&#xff0c;另外一种是等…

ASP.NET Core+Quartz.Net实现web定时任务

点击蓝色“Dotnet Plus”关注我哟加个“星标”&#xff0c;每天清晨 07:25&#xff0c;干货推送&#xff01;作为一枚后端程序狗&#xff0c;项目实践常遇到定时任务的工作&#xff0c;最容易想到的的思路就是利用Windows计划任务/wndows service程序/Crontab程序等主机方法在主…

Redis基础数据结构内部实现简单介绍

5种基础数据结构 Redis有5种基础数据结构&#xff0c;分别是&#xff1a;String&#xff08;字符串&#xff09;&#xff0c;list&#xff08;列表&#xff09;&#xff0c;hash&#xff08;字典&#xff09;&#xff0c;set&#xff08;集合&#xff09;&#xff0c;zset&…

[剑指offer]面试题7:用两个栈实现队列

面试题7&#xff1a;用两个栈实现队列 题目&#xff1a;用两个栈实现一个队列。队列的声明如下&#xff0c;请实现它的两个函数appendTail和deleteHead&#xff0c;分别完成在队列尾部插入结点和在队列头部删除结点的功能。 用两个栈模拟一个队列的操作: 代码如下: #include …

ASP.NET CORE WEBAPI文件下载

最近要使用ASP.NET CORE WEBAPI用来下载文件&#xff0c;使用的.NET CORE 3.1。考虑如下场景&#xff1a;文件是程序生成的。文件应该能兼容各种格式。浏览器可以感知进行下载。准备经过简单的调研&#xff0c;得到以下结论。ASP.NET CORE 提供FileResult这种类型的ActionResul…

Redis高级数据结构原理解析-bitmap,hyperloglog

Redis 位图 开发过程中&#xff0c;我们可能遇到这种场景记录用户的打卡情况&#xff0c;签到情况&#xff0c;这些场景只有两种结果&#xff0c;有或者没有&#xff0c;加入记录的数据量比较大&#xff0c;比如用一年的数据&#xff0c;如果用Redis中普通key/value&#xff0…

[剑指offer]面试题8:旋转数组的最小数字

面试题8&#xff1a;旋转数组的最小数字 题目&#xff1a;把一个数组最开始的若干个元素搬到数组的末尾&#xff0c;我们称之为数组的旋转。输入一个递增排序的数组的一个旋转&#xff0c;输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转&#xff0c;该数…