.gitignore的一些规则和基本用法

.gitignore 文件用于告诉 Git 哪些文件或目录应该被忽略,不纳入版本控制。以下是 .gitignore 文件的简单规则和一些常用的忽略习惯。

.gitignore 基本规则

  1. 注释和空行

    • # 开头的行是注释。
    • 空行会被忽略,用于提高可读性。
    # 这是一个注释
    
  2. 忽略特定文件或目录

    • 直接写文件或目录名即可忽略它们。
    debug.log
    /temp
    
  3. 通配符

    • * 匹配零个或多个任意字符。
    • ? 匹配单个任意字符。
    • ** 匹配任意目录层级。
    *.log        # 忽略所有 .log 文件
    build/       # 忽略 build 目录及其所有内容
    *.DS_Store   # 忽略所有 .DS_Store 文件(macOS)
    
  4. 否定模式

    • 使用 ! 来取消忽略某个文件或目录。
    *.js
    !main.js      # 忽略所有 .js 文件,除了 main.js
    
  5. 目录和子目录

    • / 结尾表示目录。
    /node_modules/  # 只忽略根目录下的 node_modules
    
  6. 转义特殊字符

    • 使用 \ 来转义特殊字符,如 !# 等。
    \!important.txt  # 忽略名为 !important.txt 的文件
    

常用的 .gitignore 忽略项

以下是一些常见的忽略项,适用于大多数项目。你可以根据具体需求进行调整。

操作系统文件

  • macOS

    .DS_Store
    
  • Windows

    Thumbs.db
    ehthumbs.db
    
  • Linux

    通常不需要特殊处理,但可以忽略一些临时文件:

    *~
    

开发工具和IDE文件

  • Visual Studio Code

    .vscode/
    
  • IntelliJ IDEA

    .idea/
    *.iml
    
  • Sublime Text

    *.sublime-project
    *.sublime-workspace
    

编程语言和框架相关

  • Node.js

    node_modules/
    npm-debug.log*
    yarn-debug.log*
    yarn-error.log*
    
  • Python

    __pycache__/
    *.py[cod]
    *.egg
    *.egg-info/
    dist/
    build/
    
  • Java

    *.class
    *.jar
    *.war
    *.ear
    target/
    
  • Ruby

    *.gem
    .bundle/
    log/
    tmp/
    
  • Go

    /bin/
    /pkg/
    

构建和发布文件

/dist
/build
/out

日志和临时文件

*.log
*.tmp
*.swp

环境配置文件

通常需要保留环境配置文件的模板,而实际的配置文件则忽略。例如:

.env
!.env.example

创建和编辑 .gitignore

  1. 创建 .gitignore 文件

    在项目根目录下创建一个名为 .gitignore 的文件:

    touch .gitignore
    
  2. 编辑 .gitignore 文件

    使用你喜欢的编辑器打开并添加需要忽略的规则。例如:

    # 操作系统文件
    .DS_Store
    Thumbs.db
    
    # Node.js 相关
    node_modules/
    npm-debug.log*
    
    # IDE 文件
    .vscode/
    
  3. 应用 .gitignore 规则

    如果你已经有一些被忽略的文件被 Git 跟踪了,需要先将它们从缓存中移除:

    git rm -r --cached .
    git add .
    git commit -m "更新 .gitignore 并移除被忽略的文件"
    
 git rm -r --cached .

这个命令的目的是将当前目录下所有被 Git 跟踪的文件从暂存区中移除,但保留它们在本地工作目录中的实际存在。这一步骤是为了让 Git 重新识别哪些文件应该被跟踪,哪些应该被忽略(根据更新后的 .gitignore 文件)。

另外:
使用 git ls-files 查看当前被 Git 跟踪的文件,确保哪些文件需要被移除或保留。

git ls-files

使用预定义的 .gitignore 模板

GitHub 提供了丰富的 .gitignore 模板,适用于各种编程语言和框架。你可以访问 GitHub’s gitignore repository 获取合适的模板,并根据需要进行调整。

例如,创建一个 Node.js 项目的 .gitignore

curl https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore -o .gitignore

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值