在本地忽略git文件,但不要从存储库中删除它们

时间:2013-04-04 12:26:36

标签: wordpress git

我的团队正在开发一个包含完全可部署的Wordpress应用程序的git存储库。这是以这种方式配置的,因此可以非常轻松地将其部署到AWS堆栈。存储库包含一个缓存插件,该插件在名为

的wp-content /文件夹中创建两个文件夹
cache/
w3tc-config/

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

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

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

你无法双管齐下。要么跟踪文件,要么跟踪它们。您无法将文件保留在存储库中,但可以避免跟踪对它们的更改。一旦跟踪它们,您就不能git add它们。 (并且值得注意的是,git不会跟踪文件夹。)

创建一个名为UnzipMeRightAfterCloning.zip的存档,其中包含您要忽略的所有内容。克隆回购的任何人都需要提取该存档,它会添加.gitignore设置阻止的所有文件/文件夹。 (根据您当前的设置,您必须首先解开这些文件夹中的文件。)

将这些内容放入.gitignore文件中。 (不要放入星号。)

cache/
w3tc-config/

答案 2 :(得分:0)

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

cache/*
w3tc-config/*

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