git-up ====== So `git pull` merges by default, when it [should really rebase](http://www.gitready.com/advanced/2009/02/11/pull-with-rebase.html). You can [ask it to rebase instead](http://d.strelau.net/post/47338904/git-pull-rebase-by-default), but it still won't touch anything other than the currently checked-out branch. If you're tracking a bunch of remote branches, you'll get non-fast-forward complaints next time you push. Solve it once and for all: ![gem install git-up](http://dl.dropbox.com/u/166030/nonsense/git-up.png) although -------- `git-up` might mess up your branches, or set your chest hair on fire, or be racist to your cat, I don't know. It works for me. configuration ------------- `git-up` can check your app for any new bundled gems and suggest a `bundle install` if necessary. It slows the process down slightly, and is therefore enabled by setting `git-up.bundler.check` to `true` in your git config, either globally or per-project. To set it globally, run this command anywhere: git config --global git-up.bundler.check true To set it within a project, run this command inside that project's directory: git config git-up.bundler.check true Replace 'true' with 'false' to disable checking. If you're even lazier, you can tell `git-up` to run `bundle install` for you if it finds missing gems. Simply set `git-up.bundler.autoinstall` to `true`, in the same manner. As above, it works globally or per-project, but make sure `git-up.bundler.check` is also set to `true` or it won't do anything.