I'm trying to use git to manage my .emacs.d directory. I occur this problem:

Some package files are already managed by package-tools such as el-get,package.el via git.

  • If I add them into my git repository, I met the submodule problem, which makes things complex.

  • If I exclude these package files, when I sync back to another computer, I have to manually install all the packages.

How to solve this dilemma?

modified:   el-get/ace-jump-mode (untracked content)
modified:   el-get/ace-window (untracked content)
modified:   el-get/dash (untracked content)
modified:   el-get/f (untracked content)
modified:   el-get/flycheck (untracked content)
modified:   el-get/fuzzy (untracked content)
modified:   el-get/s (untracked content)
  • @lunaryorn, Dan this question is similar to question asked here however it deals with a different package management system (el-get) as such I believe this is not a duplicate Commented Dec 28, 2014 at 14:52
  • @IqbalAnsari: debatable, but certainly possible. If it gets a couple more reopen votes, I'll reopen it -- although the practical effect may be the same since OP already accepted your answer. (+1, by the way; not clear why OP isn't following the "upvote-and-accept" convention.)
    – Dan
    Commented Dec 28, 2014 at 14:59
  • @IqbalAnsari: actually, a preferable way to do this might simply be to have you add your answer to the original question ("Synchronize packages...") so that we can collect all of the relevant solutions in one place. If you decide to do that (I'll upvote it for sure), please add a little more preamble to yours to clarify when to use it.
    – Dan
    Commented Dec 28, 2014 at 15:01
  • @Dan I added an answer to the original question. Commented Dec 28, 2014 at 15:54

1 Answer 1


For packages installed via package.el the approach described here would work. For packages installed via el-get you can use do

(el-get 'sync '(packages))

The above line is equivalent to package-install described in the above link. It ensures that the packages are downloaded and installed, it simply initializes the packages if they are already installed

Not the answer you're looking for? Browse other questions tagged or ask your own question.