Giter Club home page Giter Club logo

git-up's Introduction

git-up(1) -- fetch and rebase all locally-tracked remote branches

Code Climate

SYNOPSIS

git pull has two problems:

  • It merges upstream changes by default, when it's really more polite to rebase over them, 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.

INSTALL

$ gem install git-up

Windows support is predictably absent. Try the Python port, which was started for that reason.

USE

$ git up

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 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.

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:

git config --global git-up.bundler.check true

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]

Default: false. If true, git-up will check your app for any new bundled gems and suggest a bundle install if necessary.

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.

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.

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.

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.

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.

git-up.rebase.log-hook "COMMAND"

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'

git-up's People

Contributors

aanand avatar boxofrad avatar decklin avatar elliotcm avatar felixbuenemann avatar jasoncodes avatar jkrag avatar mbreit avatar nathanaelkane avatar nschum avatar twe4ked avatar wisq avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.