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文件可以为项目带来更好的版本管理和代码维护。

相关推荐
Doris_LMS21 小时前
Git的强软硬回退(三)
运维·服务器·数据库·git·idea
瓜酷月..21 小时前
GIT(了解)
git
misty youth1 天前
git命令常用指南
git·github
持续迷茫1 天前
lint-staged 中 --verbose 选项的深度解析
前端·git
lostElk1 天前
团队 Git 分管理全流程规范
git·github
亦是行人!1 天前
删除git中已经提交的target、logs、.idea文件
git
匆叔1 天前
Git下载全攻略
前端·git
奇树谦2 天前
Git配置:禁用全局HTTPS验证
git·网络协议·https
小安同学iter2 天前
在idea当中git的基础使用
git
初级代码游戏2 天前
Git或TortoiseGit的小BUG(可解决):空库报错Could not get hash of ““
git·bug