README.md in git-up-0.5.8 vs README.md in git-up-0.5.9

- old
+ new

@@ -4,19 +4,39 @@ `git pull` has two problems: * It merges upstream changes by default, when it's really more polite to [rebase over them](http://www.gitready.com/advanced/2009/02/11/pull-with-rebase.html), unless your collaborators enjoy a commit graph that looks like bedhead. * It only updates the branch you're currently on, which means `git push` will shout at you for being behind on branches you don't particularly care about right now. -Solve them once and for all: +Solve them once and for all. -![gem install git-up](http://dl.dropbox.com/u/166030/nonsense/git-up.png) +install +------- + $ gem install git-up + +Windows support is predictably absent. Try the [Python port](https://github.com/msiemens/PyGitUp), which was started for that reason. + +use +--- + +![$ git up](http://dl.dropbox.com/u/166030/git-up/screenshot.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. +difficulties +------------ + +### Windows +Windows support is an ongoing pain. Have a look at [this ticket](https://github.com/aanand/git-up/issues/34) if you really need it, or if you're bored. + +### spawn.rb:187:in `_pspawn': Invalid command name (ArgumentError) + +If you're using RVM and you get this error, [read this](https://github.com/aanand/git-up/blob/master/RVM.md). + configuration ------------- `git-up` has a few configuration options, which use git's configuration system. Each can be set either globally or per-project. To set an option globally, append the `--global` flag to `git config`, which you can run anywhere: @@ -25,34 +45,32 @@ To set it within a project, run the command inside that project's directory and omit the `--global` flag: cd myproject git config git-up.bundler.check true -### `git-up.bundler.check [true|false]` +### git-up.bundler.check [true|false] -If set to `true`, `git-up` will check your app for any new bundled gems and suggest a `bundle install` if necessary. +Default: **false**. If **true**, git-up will check your app for any new bundled gems and suggest a `bundle install` if necessary. -It slows the process down slightly, and therefore defaults to `false`. +### git-up.bundler.autoinstall [true|false] -### `git-up.bundler.autoinstall [true|false]` +Default: **false**. If **true**, and if `git-up.bundler.check` is also set to **true**, git-up will run `bundle install` for you if it finds missing gems. -If you're even lazier, you can tell `git-up` to run `bundle install` for you if it finds missing gems. Make sure `git-up.bundler.check` is also set to `true` or it won't do anything. +### git-up.fetch.prune [true|false] -### `git-up.fetch.prune [true|false]` +Default: **true**. Append the `--prune` flag when running `git fetch`, if your git version supports it (1.6.6 or greater), telling it to [remove any remote tracking branches which no longer exist on the remote](http://linux.die.net/man/1/git-fetch). -By default, `git-up` will append the `--prune` flag to the `git fetch` command if your git version supports it (1.6.6 or greater), telling it to [remove any remote tracking branches which no longer exist on the remote](http://linux.die.net/man/1/git-fetch). Set this option to `false` to disable it. +### git-up.fetch.all [true|false] -### `git-up.fetch.all [true|false]` +Default: **false**. Normally, git-up will only fetch remotes for which there is at least one local tracking branch. Setting this option to **true** will make git-up always fetch from all remotes, which is useful if e.g. you use a remote to push to your CI system but never check those branches out. -Normally, `git-up` will only fetch remotes for which there is at least one local tracking branch. Setting this option will it `git-up` always fetch from all remotes, which is useful if e.g. you use a remote to push to your CI system but never check those branches out. +### git-up.rebase.arguments [string] -### `git-up.rebase.arguments [string]` +Default: **unset**. Additional arguments to pass to `git rebase`. For example, setting this to `--preserve-merges` will recreate your merge commits in the rebased branch. -If this option is set, its contents will be used by `git-up` as additional arguments when it calls `git rebase`. For example, setting this to `--preserve-merges` will recreate your merge commits in the rebased branch. +### git-up.rebase.auto [true|false] -### `git-up.rebase.auto [true|false]` +Default: **true**. If this option is set to **false**, git-up will not rebase branches for you. Instead, it will print a message saying they are diverged and let you handle rebasing them later. This can be useful if you have a lot of in-progress work that you don't want to deal with at once, but still want to update other branches. -If this option is set to false, `git-up` will not rebase branches for you. Instead, it will print a message saying they are diverged and let you handle rebasing them later. This can be useful if you have a lot of in-progress work that you don't want to deal with at once, but still want to update other branches. +### git-up.rebase.log-hook "COMMAND" -### `git-up.rebase.log-hook "COMMAND"` - -Runs COMMAND every time a branch is rebased or fast-forwarded, with the old head as $1 and the new head as $2. This can be used to view logs or diffs of incoming changes. For example: `'echo "changes on $1:"; git log --oneline --decorate $1..$2'` +Default: **unset**. Runs **COMMAND** every time a branch is rebased or fast-forwarded, with the old head as **$1** and the new head as **$2**. This can be used to view logs or diffs of incoming changes. For example: `'echo "changes on $1:"; git log --oneline --decorate $1..$2'`