【发布时间】:2013-10-07 18:56:51
【问题描述】:
我已经到处寻找答案,但我似乎无法弄清楚。我在 GNU Emacs 24.3.1 中使用 package.el (elpa) 安装了 auctex。我正在尝试使用 Github 进行版本控制,并且我将所有自定义设置和首选项保存在我的 .emacs.d/init.el 中(根本不使用 .emacs)。我试图让所有包在多台机器之间保持同步,只要我能在任何时候去一台新机器上拉我的.emacs.d 并且一切正常。
我使用git add -A 提交了整个 .emacs.d,然后提交并推送(来自 OS X)。然后我将存储库拉到另一台机器(Windows 7 机器)。加载时出现以下错误
Warning (initialization): An error occurred while loading `c:/Users/user/.emacs.d/init.el':
File error: Cannot open load file, c:/Users/user/.emacs.d/elpa/auctex-11.87.1/auctex-autoloads
我已尝试在我的 init.el 中包含以下内容
(setq package-enable-at-startup nil)
(package-initialize)
(require 'auctex)
但没有任何运气。有谁知道可能导致问题的原因?
编辑:我刚刚意识到,当我提交到 GitHub 时,它并没有添加我期望的所有文件,包括没有添加 auctex-autoloads.el。我不确定为什么会这样,但我认为这与我如何添加要提交到 GitHub 的文件有关。任何帮助将不胜感激!
编辑 2:我尝试将选项 --force 添加到 git add -a --force 并且现在一切正常。我还在学习 git,所以我认为这是一个简单的错误。我仍然不完全确定为什么它会自动排除某些文件而不是其他文件,但我会尝试弄清楚。
谢谢!
【问题讨论】:
-
Emacs 在 Windows 和 Mac OS 中的版本是一样的吗?
-
你在某处有
.gitignore文件吗?还要检查.git/info/exclude。另外,查看您尝试添加的文件是否不是符号链接。 Git 不知道如何在 Windows 上创建符号链接。如果您从不添加所有文件的目录中显示来自$ls -la的输出,将会有所帮助。 -
您可能希望完全避免提交由 package.el 安装的文件。我只保留我想要的软件包列表和一些安装缺失软件包的代码。看到这个答案:stackoverflow.com/a/14838150/245173.