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

相关推荐
Lw老王要学习3 小时前
VScode 使用 git 提交数据到指定库的完整指南
windows·git·vscode
去旅行、在路上4 小时前
Git & Svn
git·svn
abcnull4 小时前
github中main与master,master无法合并到main
git·github
养意10 小时前
git提交代码和解决冲突修复bug
git·bug
码农黛兮_461 天前
Git 常用命令大全
git
一弓虽1 天前
git 学习
git·学习
疯狂的沙粒1 天前
如何通过git命令查看项目连接的仓库地址?
大数据·git·elasticsearch
qq_254617771 天前
Gerrit+repo管理git仓库,如果本地有新分支不能执行repo sync来同步远程所有修改,会报错
git
π大星星️1 天前
Git分布式版本控制工具
分布式·git
kingbal1 天前
IDEA:配置 Git 需要完成 Git 路径设置、账号认证以及仓库关联三个主要步骤
git·idea