1

我的团队正在开发一个 git 存储库,其中包含一个完全可部署的 Wordpress 应用程序。这是以这种方式配置的,因此可以很容易地将其部署到 AWS 堆栈。存储库包含一个缓存插件,它在 wp-content/ 文件夹中创建两个文件夹,名为

cache/
w3tc-config/

当开发人员检查此应用程序时,他们正在删除用于开发的缓存功能,因此插件将这些更改写入它使用的两个目录。然后鼓励 .git 将它们暂存以进行提交。

无论如何我们可以忽略开发机器上的这些文件夹,但不能将它们从存储库中删除?我也有兴趣听到其他可能帮助我解决这个问题的解决方案,即使它是一个更大的变化。

4

3 回答 3

1

你不能同时拥有它。文件要么被跟踪,要么不被跟踪。您不能将文件保留在存储库中,但要避免跟踪对它们的更改。一旦他们被跟踪,您就可以决定不要git add他们。(值得注意的是,git 永远不会跟踪文件夹。)

创建一个名为的存档UnzipMeRightAfterCloning.zip,其中包含您想要忽略的所有内容。任何克隆 repo 的人都需要提取该存档,它将添加您的.gitignore设置阻止的所有文件/文件夹。(鉴于您当前的设置,您必须先取消跟踪这些文件夹中的文件。)

把这些放在你的.gitignore文件中。(不要加星号。)

cache/
w3tc-config/
于 2013-04-04T15:06:05.683 回答
1

如果您检查您的存储库并master遵循它,那么您可以创建一个devel分支,您只需将缓存 w3tc-config 添加到.gitignore.

我在工作中做了类似的事情,我使用 git-svn 来处理一个 svn 存储库,该存储库在另一个 svn 存储库中为子模块“链接”。Git clone 没有获取那个子模块,所以我只是从 svn checkout 中复制了内容,签入到一个 devel 分支(在 svn trunk 分支之后留下 master),并将子模块目录添加到 .gitignore。

这是一个需要每个开发人员采取特定行动的解决方案,而不是您可以从存储库中推出的解决方案。但与 git hooks 类似,如果您创建一个tools/do_it.sh执行所需操作的脚本,则可以大大降低门槛。

于 2013-04-04T12:39:12.277 回答
0

是的,在项目目录中创建一个本地.gitignore文件。在文件中粘贴以下内容

cache/*
w3tc-config/*

现在,这些文件将从 git 中排除,但不会从存储库中删除。

于 2013-04-04T12:35:01.653 回答