Git忽略除了指定文件以外的所有文件

前言:最近发现vs很多杂七杂八的文件都被传到gitee上了,但是我本意只是想把一些主要的文件如 .cpp文件传到gitee,因此考虑到了.gitignore文件的使用。

.gitignore文件的作用


.gitignore是一个特殊的文件,用于告诉Git哪些文件或目录应该被忽略,不进行版本控制。通过使用.gitignore文件,我们可以防止某些敏感或临时文件被意外提交到版本库中。在Gi中,.gitignore文件的规则是基于Unix的文件模式匹配,我们可以通过简单的正则表达式指定要忽略的文件或目录。


创建.gitignore文件

.gitignore文件可以位于项目的根目录中,也可以位于特定子目录中,具体位置根据项目需求而定。我们可以通过以下步骤来创建一个.gitignore文件:

  1. 打开项目的根目录或指定的子目录。
  2. 创建一个名为.gitignore的新文件。
  3. 在文件中添加需要忽略的文件或目录。

以下是一个示例.gitignore文件的内容:

bash 复制代码
# 忽略所有文件和目录
*

# 但是排除以下文件
!file1.txt
!file2.txt

在上面的示例中,*通配符将排除所有文件和目录。但是,通过使用!前缀,我们可以指定要保留的文件。在这种情况下,file1.txtfile2.txt将被包括进来,并被Git版本控制。


.gitignore规则

除了上述示例中的基本规则外,下面是一些常用的.gitignore规则示例:

通用规则:
*:忽略所有文件和文件夹中的内容。
!:取消忽略某个文件或文件夹。
!*/:确保文件夹本身被 Git 跟踪(但不跟踪文件夹中的内容)。
**:递归匹配文件夹和文件。

具体细节规则:

  1. 排除指定目录下的所有文件
bash 复制代码
path/to/directory/

上述规则将会忽略path/to/directory/目录下的所有文件和子目录。

  1. 排除指定文件类型
bash 复制代码
*.ext

上述规则将会忽略项目中所有.ext扩展名的文件。例如,*.txt将会忽略所有的文本文件。

  1. 通过目录排除指定文件类型
bash 复制代码
dir/*.ext

上述规则将会忽略dir/目录下所有以.ext扩展名结尾的文件。

  1. 排除文件夹及其内容
bash 复制代码
dir/

上述规则将会忽略dir/目录以及该目录下的所有文件和子目录。

  1. 排除指定文件名
bash 复制代码
filename

上述规则将会忽略filename


示例

假设我们有以下文件和目录结构:

bash 复制代码
- project/
  - src/
    - main.cpp
    - utils/
      - helper.cpp
      - helper.h
    - build/
  - docs/
    - README.md
  - .gitignore

如果我们只想保留main.cpphelper.cpphelper.h文件,我们可以创建一个.gitignore文件并指定以下规则:

bash 复制代码
# 忽略所有文件和目录
*

# 但是排除以下文件和目录
!src/main.cpp
!src/utils/helper.cpp
!src/utils/helper.h

这样,除了我们明确指定的这几个文件外,其他所有文件和目录都将被Git忽略。


更通用的.gitignore配置

比如我是写C++的项目,我想只追踪.cpp文件的同时,保留文件夹结构,那么我的配置是:

bash 复制代码
# 忽略所有文件和文件夹
*

# 允许所有文件夹(不追踪内容)
!*/

# 允许 .cpp 文件
!*.c

总结

使用.gitignore文件可以方便地管理项目中需要忽略的文件和目录。通过简单的规则,我们可以排除除了指定文件以外的所有文件,确保Git版本控制系统只关注我们感兴趣的文件。正确地使用.gitignore文件将有助于提高项目开发的效率和可维护性,避免意外提交敏感或临时文件。在本文中,我们介绍了.gitignore文件的作用和使用方法,并提供了一些常用的规则示例。

通过创建一个.gitignore文件,并在其中按照规则指定需要忽略的文件和目录,我们可以更好地管理项目中的版本控制。同时,还可以避免将一些敏感信息、临时文件或自动生成的文件提交到版本库中,保持库的整洁和安全。

需要注意的是,每个项目都有不同的需求,.gitignore文件的内容应根据具体情况进行调整和定制。当项目增加或移除文件时,可能需要更新.gitignore文件来确保新的文件也被正确地忽略或包含进版本控制。

总的来说,.gitignore是一个非常有用的工具,它使得我们可以更好地控制Git版本控制系统,只关注项目中真正重要的文件,并避免不需要的文件影响开发流程和版本库的管理。合理使用.gitignore文件可以提高项目的透明度和可维护性,帮助团队更好地协作开发。

相关的Git文档中也提供了更多详细的规则和示例,可以根据实际需要进行参考和扩展。在日常开发中,善于使用.gitignore文件可以为项目带来更好的版本管理和代码维护。

相关推荐
楠丶14 小时前
无界(wujie)微前端项目搭建,nginx线上部署,pnpm一键安装依赖、启动应用,git代码仓库存放方式
前端·git·nginx·前端框架
蔚蓝色的风暴19 小时前
git基础(一):基本概念、工作流程
git
心肝到爆19 小时前
vue3项目最新eslint9+prettier+husky+stylelint+vscode配置
前端·javascript·vue.js·git·前端框架·node.js
杰哥的技术杂货铺1 天前
mac解决 Unsupported Git Version 2.15.0 At least 2.17.0 is required
git·macos
Yubaibaioo1 天前
Github提交Pull Request教程 & Git基础扫盲(零基础易懂)
git·github
陈善强1 天前
git lfs 上传超大文件
git
研发与思维2 天前
Git常用命令参考手册
git
前端 贾公子2 天前
POP3/SMTP服务、获取授权码(以QQ为例)
git·github
沉木渡香2 天前
[docker中首次配置git环境]
git·docker·容器