首頁>Program>source

已经有几个与此類似的問题,但是没有一个答案對我有用。

除了帶* .foo的檔案外,我想忽略儲存庫下面檔案夹中的所有內容

(如果有人想知道如何證明這一點-我實際上是為我所有的" Logic"專案製作一个git儲存庫-mac上的音乐軟體-但我只想儲存實際的專案檔案* .logic)

我要說清楚,所以我们都在同一个盤子上。 這是我的工作,从頭開始:

Setup:

mkdir temp
cd temp
mkdir testdir
cd testdir
touch include.foo
touch dontinclude.bad
cd..
git init
touch .gitignore

Paste this in to .gitignore

# Ignore all
/*
# But not these files...
!.gitignore
!*.foo

git狀態

唯一未跟蹤的檔案是.gitignore

如果我輸入" git add". -没有變化,仅顯示.gitignore,而我的2个檔案也被忽略。

為什麼不起作用,如何更改上面的步骤使其起作用?

這是我从中获得.gitignore檔案的極其相似的問题。 我正在使用git --version 1.7.7(也尝試過1.7.3)-。gitignore忽略所有檔案,然後遞迴允许某種型別的檔案

22

git

最新回復
  • 5月前
    1 #

    您的問题是 /* 開頭的模式与頂層的所有檔案和目錄匹配-包括 testdir ,所以 testdir內部的所有內容 被忽略。

    這就是您想要的:

    # Ignore everything
    *
    # Don't ignore directories, so we can recurse into them
    !*/
    # Don't ignore .gitignore and *.foo files
    !.gitignore
    !*.foo
    

    当你做一个 git add . 使用此配置,您應该發現自己只有 .gitignore*.foo 列為要提交的更改的檔案。

  • AngularJS中$ broadcast(),$ emit()和$ on()的用法
  • html:如何在CSS中使圖像覆盖?