簡體   English   中英

git忽略除某些子目錄中的文件以外的所有內容

[英]git ignore everything except files in certain subdirectories

我剛剛創建了一個像這樣的文件夾:

.
├── config
│   ├── subfolder
│   │   └── config.xml
│   └── subfolder2
│       └── config.xml
├── .gitignore
├── log2.txt
└── log.txt

我在此文件夾中輸入了git init 我想忽略除.gitignore和所有config.xml文件之外的所有內容。

這些是我嘗試過的.gitignore

1:

*
!.gitignore
!**/config.xml

2:

*
!.gitignore
!config/*/config.xml

3:

*
!.gitignore
!**/config.xml

git status顯示.gitignore是唯一具有以上任何gitignore設置的未跟蹤文件。

我也希望所有config.xml文件也位於未跟蹤的文件列表中。

我已經閱讀了atlassian的教程。 而且我認為也許是以下規則使我無法忽略除子目錄下的某些文件以外的所有內容。

我在Windows 10操作系統中使用git version 2.11.0.windows.1 有人知道為什么我的.gitignore文件無法按我期望的方式工作嗎?

在此處輸入圖片說明

克隆了您的倉庫。

有了這個.gitignore:

*
!.gitignore
!*/*/config.xml

它忽略了.gitignore和config文件之外的所有內容:

On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   .gitignore
    modified:   config/subfolder/config.xml

no changes added to commit (use "git add" and/or "git commit -a")
.
├── config
│   ├── subfolder
│   │   ├── config.xml
│   │   └── ignoringthis
│   └── subfolder2
│       └── config.xml
├── log3.txt
└── newdir

那是你要的嗎?

多虧了torek的鏈接 ,我終於提出了以下解決方案:

/**
!/**/
!.gitignore
!**/config.xml

暫無
暫無

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

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