0

平台:Windows 8.1

为了简化 Emacs 配置,我将我的 Emacs 个人文件夹上传C:\Users\username\AppData\Roaming\.emacs.d到 github。

通常我使用 Emacs 24.3 来编辑文件,然后在同一文件夹下创建init.el一个名为的副本。init.el~在我的帮助下,我在尾部斜杠文件中.gitignore添加了一行。*~git clean -fdx

问题是拥有自包含文件的elpa包。此文件可能包含删除我要保留的文件的模式。所以我的存储库下有几个文件。一个是我自己创造的。其他用于包裹。AucTeX.gitignore*.elc.gitignoreelpa

如果我尝试这样做git clean -fdx,则AucTeX's文件将通过删除存储库下的.gitignore文件来生效。*.elc

如何禁用.gitignore不是我创建的文件?

如何停用.gitignore附加在其他 Emacselpa包中的文件?

4

1 回答 1

0

我认为您可能对 git clean 参数感到困惑?该-x参数告诉 git clean不注意文件的内容.gitignore(以便删除所有未跟踪的文件)。这些.elc文件没有被删除,因为它们列在 AucTeX 的 .gitignore 文件中;它们被删除是因为它们是未跟踪的文件,并且因为您告诉 git 不要将 .gitignored 文件视为受保护的文件。

如果您提交.elc文件(它们是可移植的),git 不会想要清理它们。

就个人而言,我总是这样做。我不想使用未编译的代码运行,也不想不必要地重新编译所有内容。遇到可移植性问题的机会非常渺茫——如果您确实遇到了问题并想要重新编译一个库,那么如果有现有.elc文件告诉 Emacs应该编译哪些文件,这样做会简单得多。

https://github.com/tarsius/auto-compile添加到组合中,您的.elc文件将始终存在并且是最新的。

如果您不想这样做,那么我想您要么需要在不带-x参数的情况下运行 git clean ,然后再处理来自根级 .gitignore 的文件模式;或者使用该--dry-run参数来显示它将删除的内容,并过滤掉您想要实际保留的文件(在这种情况下,您可能会先不通过-x,然后再通过-X(大写)您将过滤的文件)。

于 2014-11-17T08:55:32.397 回答