Junk is a simple wrapper around git that tracks all the files you're not supposed to commit. This might include your .rvmrc files, sqlite development databases, and any other local project settings files. It's good for keeping your local configs synced across your development machines.
Behind the scenes, junk moves your tracked files into a git repository stored in ~/.junkd and symlinks to them from their original location. If it finds a .gitignore file, junk will make sure git ignores the symlink. Many junk commands just run the analogous git command in ~/.junkd.
Junk depends on git. It also depends on trollop, an excellent option parsing library written by William Morgan.
$ gem install junk
$ cd myproject $ junk init Alright, /path/to/myproject now has a junk drawer. $ junk track .rvmrc Now tracking .rvmrc in your junk drawer # Edit .rvmrc $ junk status # runs git status in your junk drawer $ junk add .rvmrc $ junk commit -m "tracking my .rvmrc file in junk" $ junk remote add origin YOUR_GIT_REMOTE $ junk push -u origin master # on your other development machine $ cd myproject # for first time setup $ junk clone JUNK_REPO # or if you have already cloned the repo $ junk pull $ junk link
Junk has support for hub. If you have hub installed in your path, junk will send any git commands to hub instead. For instance:
$ junk remote add -p origin YOUR_GITHUB_USERNAME/myjunk $ junk remote -v origin git@github.com:YOUR_GITHUB_USERNAME/myjunk.git (fetch) origin git@github.com:YOUR_GITHUB_USERNAME/myjunk.git (push)
Cool huh?
$ junk help # that was easy :)
Junk is licensed under the MIT License. See LICENSE.md for more information.
David Albert (dave.is)
David Albert (davidbalbert.AT.gmail.DOT.com)
You can download this project in either
zip or
tar formats.
You can also clone the project with Git
by running:
$ git clone git://github.com/davidbalbert/junk