目录

​​.gitignore 文件的作用​​

​​.gitignore 的基本语法​​

​​Python 项目的 .gitignore 示例​​

​​如何使用 .gitignore​​

​​1. 创建 .gitignore 文件​​

​​2. 编辑 .gitignore​​

​​3. 检查 Git 状态​​

​​常见问题​​

​​Q1:.gitignore 不生效?​​

​​Q2:如何全局忽略某些文件?​​

​​Q3:如何检查哪些文件被忽略了?​​

​​Python 项目的特殊注意事项​​

​​总结​​



.gitignore 文件的作用​

.gitignore 是一个纯文本文件,用于​​告诉 Git 哪些文件或目录应该被忽略​​,即不纳入版本控制。这些通常包括:

  • ​敏感信息​​(如 .env 文件、API 密钥、数据库密码)
  • ​自动生成的文件​​(如 __pycache__, .pyc, 日志文件)
  • ​系统或 IDE 的临时文件​​(如 .DS_Store, .vscode/, *.swp
  • ​依赖目录​​(如 venv/, node_modules/

.gitignore 的基本语法​

语法示例说明
filename.env忽略当前目录下的 .env 文件
directory/__pycache__/忽略所有 __pycache__ 目录
*.ext*.log忽略所有 .log 文件
!(例外)!important.log不忽略 important.log(即使前面有 *.log
#(注释)# 忽略日志文件注释行,不影响规则
**/(递归)**/temp/忽略所有层级的 temp 目录

​Python 项目的 .gitignore 示例​

一个典型的 Python 项目 .gitignore 文件如下:

# 敏感文件
.env
*.pem
*.key# Python 编译文件和缓存
__pycache__/
*.py[cod]
*.so
*.egg-info/
*.egg
.Python
build/
dist/
pip-log.txt# 虚拟环境
venv/
.env/
ENV/# 日志和临时文件
*.log
*.tmp
*.bak# IDE 配置文件
.vscode/
.idea/
*.swp
*.swo# 操作系统文件
.DS_Store
Thumbs.db

​如何使用 .gitignore

​1. 创建 .gitignore 文件​

在项目根目录下创建 .gitignore 文件:

touch .gitignore

​2. 编辑 .gitignore

用文本编辑器(如 VS Code、Vim)添加需要忽略的文件/目录,例如:

# 忽略 Python 缓存
__pycache__/
*.pyc# 忽略虚拟环境
venv/# 忽略敏感文件
.env

​3. 检查 Git 状态​

运行 git status 查看是否已正确忽略:

git status

如果 .gitignore 生效,被忽略的文件不会出现在 Untracked files 列表里。


​常见问题​

​Q1:.gitignore 不生效?​

  • ​原因​​:如果文件已经被 Git 跟踪(git add 过),.gitignore 不会自动删除它们。
  • ​解决方法​​:
    git rm --cached <file>  # 从 Git 缓存中移除,但保留本地文件
    git rm -r --cached <dir>/
    然后提交更改:
    git commit -m "Remove ignored files from Git"

​Q2:如何全局忽略某些文件?​

可以配置全局 .gitignore(适用于所有项目):

git config --global core.excludesfile ~/.gitignore_global

然后在 ~/.gitignore_global 中添加规则(如 .DS_Store)。

​Q3:如何检查哪些文件被忽略了?​

git check-ignore -v <file>  # 查看某个文件是否被忽略
git ls-files --others --ignored --exclude-standard  # 列出所有被忽略的文件

​Python 项目的特殊注意事项​

  1. __pycache__*.pyc

    • Python 解释器会生成这些缓存文件,不需要提交。
    • 确保 .gitignore 包含:
      __pycache__/
      *.pyc
  2. ​虚拟环境(venv/, .venv/, env/)​

    • 虚拟环境包含所有依赖,体积大且与机器相关,必须忽略。
    • 推荐使用 venv/.venv(Python 3.3+ 默认)。
  3. .env 文件​

    • 存储敏感配置(如数据库密码、API 密钥),​​绝对不能提交​​。
    • 提供 .env.example 作为模板:
      # .env.example
      DATABASE_URL=your_database_url_here
      API_KEY=your_api_key_here
    • 新开发者复制 .env.example.env 并填写真实值。

​总结​

场景解决方案
​忽略 Python 缓存​__pycache__/, *.pyc
​忽略虚拟环境​venv/, .venv/, env/
​忽略敏感文件​.env, *.key, *.pem
​IDE/系统文件​.vscode/, .idea/, .DS_Store

正确使用 .gitignore 可以让你的 Git 仓库更干净、更安全,避免提交不必要的文件。🚀

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

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

相关文章

QEMU环境准备

QEMU环境准备 下载 qemu # qemu sudo apt install qemu-system-arm # gdb sudo apt install gdb-multiarchsudo apt-get update sudo apt-get install build-essential zlib1g-dev pkg-config libglib2.0-dev \libpixman-1-dev libfdt-dev ninja-build下载并自行编译 qemu(可…

003 cargo使用

cargo是什么 cargo 是 Rust 的构建系统和包管理器。Rust 开发者常用 cargo 来管理 Rust 工程和获取工程所依赖的库。 在上一篇文章中我们已经使用cargo new命令创建了一个名叫hello_rust的项目。也使用cargo run来运行项目。 cargo常用命令 cargo 除了创建工程以外还具备构建&a…

跨省跨国监控难题破解:多层级运维的“中国解法”

在全球化的商业浪潮中&#xff0c;集团型客户的业务布局日益广泛&#xff0c;涉及跨省甚至跨国的多个分支机构和业务节点。这种跨域管理的模式给企业的运维监控带来了前所未有的挑战。多个分支机构和业务节点运维调整首先&#xff0c;不同地区的网络环境差异巨大。从国内不同省…

pandas读取复合列名列头及数据和处理

pandas读取复合列名列头及数据和处理1. 效果图2. 源代码1. 效果图 原始excel&#xff1a; 读取1&#xff0c;2行为复合表头&#xff1a; 读取序号为1003一整行的数据&#xff0c;以及获取序号为1002行及1003行的C列复合表头列的值&#xff1a; 2. 源代码 import pandas …

制作一个简单的vscode插件

当前环境情况 操作系统&#xff1a;Windows 项目类型&#xff1a;VS Code 插件&#xff08;TypeScript 编写&#xff09; Node.js 版本&#xff1a;20.18.1 yarn 版本&#xff1a;1.22.22 npm 版本&#xff1a;10.8.2 npm registry&#xff1a;huawei ------- https://repo.hua…

分布式专题——10.2 ShardingSphere-JDBC分库分表实战与讲解

1 分库分表案例 下面实现一个分库分表案例&#xff0c;将一批课程信息分别拆分到两个库&#xff0c;四个表中&#xff1a; 需提前准备一个 MySQL 数据库&#xff0c;并在其中创建 Course 表。Course 表的建表语句如下&#xff1a; CREATE TABLE course (cid bigint(0) NOT N…

Digital Clock 4,一款免费的个性化桌面数字时钟

Digital Clock 4&#xff0c;一款免费的个性化桌面数字时钟 ** 功能 ** &#xff1a;一款免费的桌面数字时钟工具&#xff0c;支持多种皮肤、透明度调节和字体样式自定义&#xff0c;时钟可自由拖动&#xff0c;支持设置闹钟、定时关机、显示自定义消息等功能&#xff0c;适合想…

学习Python是一个循序渐进的过程,结合系统学习、持续实践和项目驱动,

学习Python是一个循序渐进的过程&#xff0c;结合系统学习、持续实践和项目驱动&#xff0c;你会掌握得更好。下面我为你梳理了一个分阶段的学习路线和实用建议&#xff0c;希望能帮你高效入门并逐步提升。 &#x1f40d; Python学习指南&#xff1a;从入门到精通 &#x1f5…

vcpkg:面向C/C++的跨平台库管理工具软件配置笔记经验教程

1、什么是vcpkg 对于使用过Python进行程序设计的开发者们&#xff0c;大多都会对Python的各种库和依赖&#xff0c;仅仅通过几条简单命令行就完成配置的操作感到惊叹&#xff0c;非常的省事省力。反倒是C/C开发时&#xff0c;要是每个库都要自己下载源码编译或者对环境进行配置…

【Docker】常用帮忙、镜像、容器、其他命令合集(2)

【Docker】常用帮忙、镜像、容器、其他命令合集&#xff08;2&#xff09;博主有话说容器命令新建容器并启动列出所有的运行的容器退出容器docker run -it centos:7.0.1406 /bin/bash指令解析docker exec -it ... bash 、docker run -it ... bash、docker attach [容器] 的exit…

系统编程.9 线程

1.线程概述程序运行起来编程进程&#xff0c;进程由一个个线程构成。eg&#xff1a;没有启动的qq时一个程序&#xff0c;启动后登录qq&#xff0c;qq是一个进程&#xff0c;实际上进程什么都没做&#xff0c;只是提供了需要的资源&#xff0c;打开聊天框可以和别人进行通信&…

2.10组件间的通信

1.Vue组件的嵌套关系1.1认识组件的嵌套前面我们是将所有的逻辑放到一个 App.vue 中&#xff1b;在之前的案例中&#xff0c;我们只是创建了一个组件 App&#xff1b;如果我们一个应用程序所有的逻辑都放在一个组件中&#xff0c;那么这个组件就会变成非常的臃肿和难以维护&…

Mybatis-Plus学习笔记

目录 一、MyBatis-Plus简介 二、MyBatisPlus使用的基本流程&#xff1a; &#xff08;1&#xff09;引入MybatisPlus依赖&#xff0c;代替MyBatis依赖 &#xff08;2&#xff09;自定义Mapper继承BaseMapper ​编辑&#xff08;3&#xff09;在实体类上添加注解声明表信息…

Day22 用C语言编译应用程序

文章目录1. 保护操作系统5&#xff08;harib19a&#xff09;2. 帮助发现bug&#xff08;harib19b&#xff09;3. 强制结束应用程序&#xff08;harib19c&#xff09;4. 用C语言显示字符串&#xff08;harib19e&#xff09;5. 显示窗口&#xff08;harib19f&#xff09;1. 保护操…

简单学习HTML+CSS+JavaScript

一、HTML HTML被称为 超文本标记语言&#xff0c;是由一系列标签构成的语言。 下面介绍HTML中的标签&#xff1a; &#xff08;一&#xff09;HTML文件基本结构 <!DOCTYPE html><html><head><title>Document</title></head> <body&…

强化学习中重要性采样

PPO 中重要性采样 https://github.com/modelscope/ms-swift/blob/main/docs/source/Instruction/GRPO/GetStarted/GRPO.md乐&#xff0c;这个网页中是的groundtruth是错误的&#xff08;可能是为了防止抄袭&#xff09;。一些例子 0. 池塘养鱼的一个例子 想象一下&#xff0c;你…

《树与二叉树详解:概念、结构及应用》

目录 一. 树的概念和结构 1.1 树的基本概念 1.2 树的结构特点 二. 树的表示方法和实际运用 2.1 孩子 - 兄弟表示法&#xff08;Child-Sibling Representation&#xff09; 2.2 树的实际应用场景 三. 二叉树的概念 3.1 二叉树的核心定义 3.2 二叉树的基本分类 四. 二叉…

Qt/C++,windows多进程demo

1. 项目概述 最近研究了一下Qt/C框架下&#xff0c;windows版本的多进程编写方法&#xff0c;实现了一个小demo。下面详细介绍一下。 MultiProcessDemo是一个基于Qt框架实现的多进程应用程序示例&#xff0c;展示了如何在Windows平台上通过共享内存和事件机制实现进程间通信。该…

Android SystemServer 系列专题【篇五:UserController用户状态控制】

本篇接着SystemServer的启动流程&#xff0c;围绕SystemServer最后阶段关于主用户的启动和解锁的流程&#xff0c;作为切入点&#xff0c;来看看SystemServer是如何讲用户状态同步到所有的系统级服务中。ssm.onStartUserssm.onUnlockingUserssm.onUnlockedUser本篇先介绍UserCo…

推荐使用 pnpm 而不是 npm

npm 的局限性 磁盘空间浪费在 npm 早期版本中&#xff0c;每个项目的node_modules目录都会完整复制所有依赖包&#xff0c;即使多个项目依赖同一个包的相同版本&#xff0c;也会重复存储。这导致磁盘空间被大量占用&#xff0c;随着项目数量的增加&#xff0c;存储成本显著上升…