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

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


9c16a0ed0545225b9521d20488c572c7.jpg


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跟踪文件


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


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

相关文章
|
8天前
|
人工智能 监控 小程序
分享5款最近整理出来的实用软件
本文介绍了五款实用的软件工具:便签工具Sticky Notes、Dock工具Bitdock、在线AI工具箱3171.CN、自动化脚本工具AutoIt和硬盘监控工具Hard Disk,涵盖从日常记录、桌面管理到系统维护等多个方面,满足不同用户需求。
35 5
|
4月前
|
数据安全/隐私保护 索引 Windows
这款软件的高级用法,网工直呼:真香!
这款软件的高级用法,网工直呼:真香!
|
Windows
谈一谈|下载软件的门道你懂吗?
谈一谈|下载软件的门道你懂吗?
135 0
|
前端开发
开心档 - 软件开发入门之
提示框可以使用 .alert 类, 后面加上 .alert-success, .alert-info, .alert-warning, .alert-danger, .alert-primary, .alert-secondary, .alert-light 或 .alert-dark 类来实现:
|
监控 前端开发 jenkins
新来个技术总监,给团队引入了这款开发神器,同事直呼哇塞
带团队时间久了,就能发现整个 Team 都渐渐疲了。前两年老板还专门买了个系统搞 OKR,现在也不大提了;Scrum 我们也搞了,用起来也就那样;项目管理工具试了好几个,禅道、Worktile、现在用 Coding,反正有一个能用的就行;微服务化改造从去年开始在吭哧吭哧搞,我们自己搞得觉得很厉害,但业务部门那边就觉得没啥差别,搞不懂你们研发部门每天在弄些什么,赶紧做我们提的需求要紧。
新来个技术总监,给团队引入了这款开发神器,同事直呼哇塞
|
数据可视化 开发工具 git
|
开发工具 git
如何使用TortoiseGit指北,一篇讲清(下)
如何使用TortoiseGit指北,一篇讲清(下)
如何使用TortoiseGit指北,一篇讲清(下)
|
JavaScript 前端开发
开心档-软件开发入门之 开心档-软件开发入门之
本文主要讲解Vue.js v-bind 在处理 class 和 style 时, 专门增强了它。表达式的结果类型除了字符串之外,还可以是对象或数组。
|
存储 安全 IDE
Git 入门看这一篇就够了!程序员防被diss必会技能走一波
今天简单讲下 Git 的实现原理,知其所以然才能知其然;并且梳理了日常最常用的 12 个命令,分为三大类分享给你。 如果觉得不错的话,一定要点个关注哦 本文的结构如下: 作者和开发原由 Git 的数据模型 常用命令 资源推荐 作者和开发原由 Talk is cheap. Show me the code. 这句话就出自 Linux 和 Git 的作者Linus Torvalds。 原本 Linux 内核的版本控制系统是用的 BitKeeper,然而 2005 年,BitMover 公司不再让 Linux 开发团队免费使用了。。 Linus 一听,不给用了?老子自己写!
Git 入门看这一篇就够了!程序员防被diss必会技能走一波
|
监控 安全 网络安全
开发人员,怎能没有个人博客!开经络,识秘籍
开发人员,怎能没有个人博客!开经络,识秘籍
172 0
开发人员,怎能没有个人博客!开经络,识秘籍