git - .gitignore 除了
问题描述
我有一个充满文件和子目录的大目录。
其中两个或三个文件是主目录中的 excel 电子表格,我需要定期往返于家中。
我的想法是创建一个仅包含这几个文件的 git 存储库,然后使用 git 通过 github 上的私有存储库来回传递文件。
我无法将这些文件移动/隔离到他们自己的其他目录中,它们需要留在原处(在数百个其他文件中)。因此,如果我在该目录上创建一个存储库,它将包含很多我不想包含的文件。就像我需要使用白名单创建存储库一样,“排除除 file1.xls、file2.xls 之外的所有内容”。
我的 git 技能很弱。谁能建议最干净的方法来做到这一点,或者是否有更惯用的方法来做到这一点?
解决方案
正如@matt 指出的那样,Git 只“查看您明确要求它查看的文件”。一个简单的解决方案是只签入您想要的文件。
$ git add file1.xls file2.xls
$ git commit -m "Here are the Excel files"
如果您希望能够使用 签入所有内容$ git add .
,或者只是避免意外添加其他文件之一,一种技术是通过 忽略所有内容*
,然后包含您的特定文件或匹配的文件扩展名。
这是一个示例.gitignore
。
# Ignore everything
*
# Include specific files excluded by a previous pattern
!file1.xls
如果您可以签入所有 Excel 文件,请替换file.xls
为。*.xls
从文档:
!
否定模式的可选前缀“ ”;任何被先前模式排除的匹配文件都将再次包含在内。如果排除了该文件的父目录,则无法重新包含该文件。出于性能原因,Git 不会列出排除的目录,因此包含文件的任何模式都无效,无论它们是在哪里定义的。对于以文字“ ”开头的模式,例如“ ”,\
在第一个“ ”之前放置一个反斜杠(“ ”) 。!
!
\!important!.txt
推荐阅读
- r - 加入数据库代码问题的问题
- c - 从 const char 指针到 char 指针的赋值不给出警告
- javascript - 如何在焦点期间更改值后关注输入的结尾
- java - 如果通过另一个对象访问对象,我应该使用聚合吗?
- r - 替换数据框列中的值
- c# - 如何更新由 webhook 触发的 azure 函数中的记录?
- npm - 无法安装 expo-cli ,抛出错误并花费大量时间
- c# - 是否可以以编程方式生成包含组织结构图的 Excel 文件?
- c++ - dtor 中的这个 unique_lock 是否有任何用途?
- javascript - 使用 Materialize-CSS 和 React 的 TypeError