You know you can create your own git commands right? Git supports custom aliases. They rock.
The hello world examples are just creating shortcuts for existing commands.
git config --global alias.co checkoutSimple, right?You can put global aliases in your user Git config file: ~/.gitconfig
You can also put them in the config file for a given repository: project/.git/config
Here's a list of mine.
Safe pull. Always does a fetch, but only updates your local branch if you can fast forward. As easy way to make sure you don't create a merge with upstream due to local weirdness.
Definition:
sp = pull --ff-onlyUsage:
git spFetch all. Fetch all remotes for this repository. Used a lot when I have an upstream branch and my fork.
Definition:
fa = fetch --allUsage:
git faGrep with a simple string match. See the full breakout here. Basically lets my search for simple strings across text files explicitly without regex. Move into a subdirectory and grep will search only that dir and below. Use it constantly.
Definition:
gp = grep -I -F -n -eUsage:
git gp 'void main('Grep TODOs. Find all instances of TODO. Move into a subdirectory and grep will search only that dir and below.
Definition:
g2do = grep -n TODOUsage:
git g2doGithub! Open the GitHub page for the current repo. Found here. There are a lot of ways to skin this cat. This works for me on mac.
Definition:
gh = "!open https://github.$(git config remote.origin.url | cut -f2 -d. | tr ':' /)"Usage:
git ghFind file. Exactly what it says. Finds file where any part of the file path matches the provided string.
Definition:
ff = "!git ls-tree -r --name-only HEAD | grep -F"Usage:
git ff index.html -- Note, this will include /index.html.haml and /index.html/resources/foo.png.Hope you find some of these useful.
Happy hacking!
