0

我的项目具有以下结构。

- src/
 - .gitignore
 - lib
    - liba
    - libb
    - lib
    - libd

在我的 。gitignore,我要求忽略lib文件夹。假设lib包含外部库,如 jquery、jqueryui 等,它们有自己的生命周期。不幸的是,我使用的工具需要lib在我的src文件夹中。现在,我需要对liba. 我不想跟踪 lib 中的所有外部项目(liba 除外),但需要将我的更改保存到 liba。如果我从 .gitignore 中删除 lib,则会导致跟踪 lib 中的项目。可能我只能在 .gitignore (选项1)中排除一个项目,或者 git submodule 可能是答案。option1 需要排除我lib将来可能添加的任何库,而不是每次都手动将其添加到 .gitignore。我阅读了有关子模块的信息,但不确定在我的情况下是否可行,因为外部仓库在我的 src 中。

实现这一目标的最佳方法是什么。

谢谢。

4

2 回答 2

1

如果你想忽略lib,除了lib/liba,你可以.gitignore这样构建:

/lib
!/lib/liba

这基本上是说忽略liblib/liba. 如果您只想跟踪几个文件(例如*.h文件)lib/liba,您可以更进一步:

/lib
!/lib/liba/*.h

虽然这不会捕获lib/liba. 为此,您可能需要.gitignorelib/liba/.gitignore. 然后你的 main.gitignore就像第一个例子一样,你lib/liba/.gitignore会说:

*
!*.h
于 2013-04-02T16:18:34.217 回答
0

您可以使用git add -f显式添加忽略的项目。这样你就可以让你的 .gitignore 保持原样,但仍然可以跟踪 lib/liba。

于 2013-04-02T15:50:29.823 回答