平台: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
文件的模式。所以我的存储库下有几个.gitignore
个文件。一个是由我自己创造的。其他用于elpa
包。
如果我尝试git clean -fdx
,AucTeX
的{{1}}文件将通过删除存储库下的.gitignore
文件生效。
如何禁用非我创建的*.elc
文件?
如何停用附加其他Emacs .gitignore
套餐的.gitignore
个文件?
答案 0 :(得分:0)
我觉得你可能对git clean参数感到困惑? -x
参数告诉git clean 不注意到.gitignore
个文件的内容(以便所有未跟踪的文件被删除)。 {em>未删除.elc
个文件,因为它们列在AucTeX的.gitignore文件中;它们被删除是因为它们是未跟踪文件,并且因为你告诉git不要将.gitignored文件视为受保护文件。
如果您提交.elc
个文件(portable),git将不想清除它们。
就个人而言,我总是这样做。我不想使用未编译的代码运行,我不想让你不必要地重新编译所有内容。遇到可移植性问题的可能性非常小 - 如果遇到问题并且想要重新编译库,如果有现有的.elc
文件告诉Emacs哪些文件,那就更容易了应编译。
将https://github.com/tarsius/auto-compile添加到组合中,您的.elc
文件将始终存在并且是最新的。
如果您不想这样做,那么我猜您要么在没有-x
参数的情况下运行git clean,并在另一个传递中处理来自根级别.gitignore的文件模式;或者使用--dry-run
参数来显示它将删除的内容,并过滤掉您想要实际保留的文件(在这种情况下,您可以在没有-x
的情况下进行第一次传递,然后使用{进行第二次传递你会过滤的{1}}(大写)。