Installs git repos onto your system and keeps them up-to-date
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Installs git repos onto your system and keeps them up-to-date. It's a lightweight package manager for things that haven't been published to a real package manager. It's useful for installing and updating all the odd one-off things that only live on GitHub


List the repos you want installed in a YAML file called Gitfile

# ~/my/source/dir/Gitfile

- url: git://
- url:
  path: thoughtbot/
- url:
  tag: v0.4
- url:
  path: ~/.tmux-plugins/
  branch: master

Run gitfile

cd ~/my/source/dir

And your repos will be cloned or fetched


The Gitfile must be in YAML format and the top level element must be an array. Options are

  • url - The Url (https or ssh) of the git repo
  • path - The path to install to (absolute or relative to current dir)
  • branch - The branch to install
  • tag - The tag to install
  • commit - The commit to install

You can only use one of tag, branch, and repo. If none are defined, then branch master is installed.


gitfile - Installs from Gitfile in the current directory
gitfile <dir> - Installs using the Gitfile in the specified directory. Repos are installed relative to the specified directory, not the directory the command is run from


If you don't have Go, you must install it from Then run:

go get
go install


Feel feel free to open issues and pull requests. If you like this repo, spread the word!

Potential Improvements

  • --help flag
  • man pages
  • post_install: config option for running script
  • post_update: config option for running script
  • gitfile status command (show repo status)
  • brew, deb, arch, yum etc. packages