簡體   English   中英

.gitignore 除

[英].gitignore everything except

我有一個充滿文件和子目錄的大目錄。

其中兩三個文件是主目錄中的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 .簽入所有內容$ git add . ,或者只是避免意外添加其他文件之一的機會,一種技術是通過*忽略所有內容,然后包含您的特定文件或匹配的文件擴展名。

這是一個示例.gitignore

# Ignore everything
*
# Include specific files excluded by a previous pattern 
!file1.xls

如果您可以檢查所有 Excel 文件,請將file.xls替換為*.xls

從文檔:

一個可選的前綴“ ! ”,它否定了模式; 任何被先前模式排除的匹配文件將再次包含在內。 如果排除了該文件的父目錄,則無法重新包含該文件。 出於性能原因,Git 不會列出排除的目錄,因此包含文件的任何模式都不起作用,無論它們在哪里定義。 對於以文字“ ! ”開頭的模式,例如“ \\!important!.txt ”,在第一個“ ! ”前放置一個反斜杠(“ \\ ”)。

https://git-scm.com/docs/gitignore

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM