alias g='git'git log --pretty=format:'%s'git show-branch -a | grep '\*' | grep -v `git rev-parse --abbrev-ref HEAD` | head -n1 | sed 's/.*\[\(.*\)\].*/\1/' | sed 's/[\^~].*//'git push --set-upstream origin mastergit branch -a | grep "remotes/origin" | grep -v master | sed 's/^[ *]*//' | sed 's/remotes\/origin\///' | head -n10 | sed 's/^/git push origin :/'git diff --color | sed "s/^\([^-+ ]*\)[-+ ]/\\1/" | less -rfind .git/hooks -type l -exec rm {} \; && find .githooks -type f -exec ln -sf ../../{} .git/hooks/ \;git status -su | cut -d' ' -f2- | tr '\n' '\0' | xargs -0 rmgit log --all -M -C --name-only --format='format:' "$@" | sort | grep -v '^$' | uniq -c | sort | awk 'BEGIN {print "count\tfile"} {print $1 "\t" $2}' | sort -ggit branch -r | cut -d '/' -f2 | grep -Ev '( |master)' | xargs -Ibranch git checkout -b branch origin/branchopen `git remote -v | awk '/fetch/{print $2}' | sed -Ee 's#(git@|git://)#http://#' -e 's@com:@com/@'`| head -n1find . -name '.git' -exec rm -rf {} \;for file in $(git status | grep "new file" | sed "s/#\tnew file://"); do git rm --cached $file; donefor remote_branch in $(git ls-remote); do if [[ $remote_branch =~ .*(feature/MAGENTA-([0-9|^130]).+).* ]]; then git push origin :${BASH_REMATCH[1]}; fi; donefor branch in $(git branch | grep "feature/MAGENTA-"); do git branch -D $branch; donecurl -s https://api.github.com/users/username/followers | grep '\"login\"' | sed -e's/[,|"|:]//g' | awk '{print $(NF)}' | sortgit config --global alias.commit-random '!git commit -m "$(curl -s http://whatthecommit.com/index.txt)"'usage: git commit-random
curl "https://api.github.com/users/usernamehere/repos?type=owner&sort=updated" -s | sed -En 's|"name": "(.+)",|\1|p' | tr -d ' 'egrep -v '^\s*($|#)' $(git grep -l '#!/bin/.*sh' *) | wc -lfor i in `git remote`; do git push $i; done;git rev-list --reverse --topo-order master... | while read rev; do git checkout preview; git cherry-pick $rev || break; donefor i in `git remote`; do git push $i; done;
git branch -a | grep -v HEAD | perl -ne 'chomp($_); s|^\*?\s*||; if (m|(.+)/(.+)| && not $d{$2}) {print qq(git branch --track $2 $1/$2\n)} else {$d{$_}=1}' | csh -xfs;for i in `git remote`; do git push $i; done;
for f in `git status | grep new | awk '{print $3}'`; do git reset HEAD $f ; donefor i in `git remote`; do git push $i; done;
git reset HEAD -- $(git status | awk '/new file:/{print $3}')for i in `git remote`; do git push $i; done;
git submodule foreach git pull origin masterfor i in `git remote`; do git push $i; done;
git log --oneline | nl -v0 | sed 's/^ \+/&HEAD~/'for i in `git remote`; do git push $i; done;
o=0; git log --oneline | while read l; do printf "%+9s %s\n" "HEAD~${o}" "$l"; o=$(($o+1)); done | lessfor i in `git remote`; do git push $i; done;
git diff $(git log --pretty=format:%h -2 --reverse | tr "\n" " ")for i in `git remote`; do git push $i; done;
git ls-files | while read file; do echo $file; touch -d $(git log --date=local -1 --format="@%ct" "$file") "$file"; donefor i in `git remote`; do git push $i; done;
git --no-pager show -s --format='%an <%ae> on %cd' --date=short {commithash}for i in `git remote`; do git push $i; done;
git log -i -1 --pretty="format:%an <%ae>\n" --author="$1"for i in `git remote`; do git push $i; done;
git log --pretty=format: --name-status $@ | cut -f2- | sort -ufor i in `git remote`; do git push $i; done;
git add -A && git commit -avfor i in `git remote`; do git push $i; done;
git log --oneline --decorate | nl | sort -nr | nl | sort -nr | cut --fields=1,3 | sed 's/([^)]*)\s//g'for i in `git remote`; do git push $i; done;
git log --oneline --decorate | tac | nl | tac | sed 's/([^)]*)\s//g'for i in `git remote`; do git push $i; done;
git log --pretty=format:'%ad' | tail -1for i in `git remote`; do git push $i; done;
git branch --merged | grep -v "\*" | xargs -n 1 git branch -dfor i in `git remote`; do git push $i; done;
git branch | egrep -v ^master$ | sed 's/^[ *]*//' | sed 's/^/git branch -D /' | bashgit branch | grep -v "master" | sed 's/^[ *]*//' | sed 's/^/git branch -D /' | bashgit checkout master; git branch | sed -e '/master/d' -e 's/^/git branch -D /' | bashgit archive -o "${PWD##*/}.zip" HEADgit log HEAD...origin/master --pretty=oneline | grep pullgit ls-files -d -z | xargs -0 git update-index --removegit shortlog -sn --all | cut -f2 | cut -f1 -d' 'git filter-branch -f --tree-filter 'rm -rf filename.py' HEADcurl "https://api.github.com/users/username/repos?type=owner&sort=updated" -s | sed -En 's|"name": "(.+)",|\1|p' | awk '{print $1}'git branch -r | awk -F'/' '{print "git fetch "$1,$2}' | xargs -I {} sh -c {}git tag -a 1.2 -m "Version 1.2 Stable"git for-each-ref --format='%(refname:short)' refs/heads/* | while read b; do if r=$(git config --get branch.$b.remote); then m=$(git config --get branch.$b.merge); echo "$b -> $r/${m##*/}"; fi; donegit push --tagscurl -L https://gist.github.com/username/gistid/download | tar -xvz --strip-components=1git branch -d branchnamegit push origin --delete branchnamegit log -i --grep props | egrep -io 'props (to )?[a-z0-9_\-]*' | sed 's/.* //' | sort | uniq -c | sort -k1nrgit reset --soft HEAD^git branch -d `git branch --merged | grep -v '^*' | grep -v 'master' | tr -d '\n'`git commit --amend --author "$1 <$2>" -C HEADbranch=$(git rev-parse --abbrev-ref HEAD) git diff origin/$branch..HEADgit branch | awk '/\*/{print $2}'git for-each-ref --sort=-committerdate --format='%(refname:short) %(committerdate:short)'git rev-list --all | xargs git grep -F 'string'curl -s -F "url=http://github.com/twitter" -i http://git.io | sed -n 's/Location:.* //p'git log --pretty=format:'%s' | cut -d " " -f 1 | sort | uniq -c | sort -nrgit log --oneline | awk '{ print $2; }' | sort | uniq -c | sort -rgit log -1 --pretty="format:%an <%ae>" --author="$1"git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5for t in `git tag` do; git push origin :$t; git tag -d $t; donefind . -path '*.git/config' -execdir git gc --aggressive \;find . -name .DS_Store -exec git rm --ignore-unmatch --cached {} +git branch -d `git branch --merged | grep -v '^*' | grep -v 'master' | tr -d '\n'`git commit --amend --author "John Doe <[email protected]>" -C HEADgit log --graph --pretty=format:'%Cred%h%Creset %an: %s - %Creset %C(yellow)%d%Creset %Cgreen(%cr)%Creset' --abbrev-commit --date=relativegit status | grep deleted | awk '{\$1=\$2=\"\"; print \$0}' | perl -pe 's/^[ \t]*//' | sed 's/ /\\\\ /g' | xargs git rmgit log --name-status --oneline --all | grep -P "^[A|M|D]\s" | awk '{print $2}' | sort | uniqgit branch | grep "^*" | sed 's/* //g'git status | grep deleted | sed 's/deleted://g' | sed 's/[#| ]//g' | xargs git rmgit rev-parse --show-toplevelLAST_MESSAGE=`git log -1 --pretty="format:%s"`; git commit -m "$LAST_MESSAGE" --amend --date "`date`"alias tasks='grep --exclude-dir=.git -rEI "TODO|FIXME" . 2>/dev/null'vim $(git rev-parse --show-toplevel)/.gitignoregit log --pretty=oneline --abbrev-commitgit status -s | grep -o ' \S*php$' | while read f; do php -l $f; donegit reset --hard <commidId> && git clean -ffind .git/objects -type f -printf "%P\n" | sed s,/,, | while read object; do echo "=== $obj $(git cat-file -t $object) ==="; git cat-file -p $object; donegit for-each-ref --sort='-authordate' --format='%(refname)%09%(authordate)' refs/heads | sed -e 's-refs/heads/--'alias gitlog='git log -10 --graph --date-order -C -M --pretty=format:"%C(yellow)%h%C(reset) - %C(bold green)%ad%C(reset) - %C(dim yellow)%an%C(reset) %C(bold red)>%C(reset) %C(white)%s%C(reset) %C(bold red)%d%C(reset) " --abbrev-commit --date=short'git status --porcelain | sed -ne 's/^ M //p' | tr '\n' '\0' | tr -d '"' | xargs -0 vimvim `git status --porcelain | sed -ne 's/^ M //p'`vim `git status | grep modified | awk '{print $3}'`vim -p `git --porcelain | awk {print $2}`for x in `git status | grep deleted | awk '{print $3}'`; do git rm $x; donegit diff-tree -z -r --no-commit-id --name-only --diff-filter=ACMRT COMMID_HASH | xargs -0 tar -rf list.targit log -z origin/master..master --name-only --pretty="format:" | sort -zu | xargs -0 tar -rf list.targit ls-files | xargs wc -l | awk -F ' +|\\.|/' '{ sumlines[$NF] += $2 } END { for (ext in sumlines) print ext, sumlines[ext] }'git reflog show | grep '}: commit' | nl | sort -nr | nl | sort -nr | cut --fields=1,3 | sed s/commit://g | sed -e 's/HEAD*@{[0-9]*}://g'git checkout $(git rev-list -n 1 HEAD -- "$file")^ -- "$file"git log | grep Date | awk '{print " : "$4" "$3" "$6}' | uniq -cgit branch -r | awk '{print $1}' | egrep -v -f /dev/fd/0 <(git branch -vv | grep origin) | awk '{print $1}' | xargs git branch -dfind . -name ".git" -type d -exec rm -rf {} \;git shortlog -s | sort -rn | headgit checkout -tb mybranch origin/mybranchgit ls-files | xargs -n1 git blame --line-porcelain | sed -n 's/^author //p' | sort -f | uniq -ic | sort -nrgit log --graph --oneline --all --decorate --colorgit remote -v | grep fetch | sed 's/\(.*github.com\)[:|/]\(.*\).git (fetch)/\2/' | awk {'print "https://github.com/" $1'} | xargs openfor k in $(git branch | sed /\*/d); do echo "$(git log -1 --pretty=format:"%ct" $k) $k"; done | sort -r | awk '{print $2}'git submodule foreach git pull --ff-only origin mastercurl http://whatthecommit.com/index.txttar czf git_mods_circa_dec23.tgz --files-from <(git ls-files -m)git rev-list --reverse HEAD | awk "/$(git log -n 1 --pretty="format:%h")/ {print NR}"curl -s 'http://whatthecommit.com/' | grep '<p>' | cut -c4-for k in `git branch|sed s/^..//`;do echo -e `git log -1 --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" "$k" --`\\t"$k";done|sortgit config --local --get remote.origin.urlgit branch | cut -c3- | grep -v "^master$" | while read line; do git branch -d $line; done | grep 'Deleted branch' | awk '{print $3;}' | while read line; do git push <target_remote> :$line; donegit add -uparallel -j4 cd {}\; pwd\; git pull :::: <(git submodule status | awk '{print $2}')git archive HEAD | gzip > ~/Dropbox/archive.tar.gzgit push origin --allgit push origin :featurelessgit-rm for all deleted files, including those with space/quote/unprintable characters in their filename/path
git ls-files -z -d | xargs -0 git rm --git log --oneline <REMOTE>..<LOCAL BRANCH>lynx -dump -nolist http://whatthecommit.com/|sed -n 2pcurl -s http://whatthecommit.com | html2text | sed '$d'curl -s http://whatthecommit.com | sed -n '/<p>/,/<\/p>/p' | sed '$d' | sed 's/<p>//'function where(){ COUNT=0; while [ `where_arg $1~$COUNT | wc -w` == 0 ]; do let COUNT=COUNT+1; done; echo "$1 is ahead of "; where_arg $1~$COUNT; echo "by $COUNT commits";};function where_arg(){ git log $@ --decorate -1 | head -n1 | cut -d ' ' -f3- ;}git status | perl -F'\s' -nale 'BEGIN { $a = 0 }; $a = 1 if $_ =~ /changed but not updated/i; print $F[-1] if ( $a && -f $F[-1] )'git grep "search for something" $(git log -g --pretty=format:%h -S"search for something")git log --pretty=format:%H | tail -1git log --format=%H | tail -1git log --format='%aN <%aE>' | awk '{arr[$0]++} END{for (i in arr){print arr[i], i;}}' | sort -rn | cut -d\ -f2-git log -p -z | perl -ln0e 'print if /[+-].*searchedstring/'git log --all --pretty=format:" " --name-only | sort -ufind ~ -maxdepth 2 -name .git -print | while read repo; do cd $(dirname $repo); git pull; donefind . \( -type d -empty \) -and \( -not -regex ./\.git.* \) -exec touch {}/.gitignore \;git log --graph --pretty=oneline --decorategit log --format='%aN' | sort -ugit shortlog -s | cut -c8-for k in `git branch|sed s/^..//`;do echo -e `git log -1 --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" "$k"`\\t"$k";done|sortgit clean -n | sed 's/Would remove //; /Would not remove/d;' | xargs mv -t stuff/git ls-files | while read i; do git blame $i | sed -e 's/^[^(]*(//' -e 's/^\([^[:digit:]]*\)[[:space:]]\+[[:digit:]].*/\1/'; done | sort | uniq -ic | sort -nrgit ls-files | xargs -n1 -d'\n' -i git-blame {} | perl -n -e '/\s\((.*?)\s[0-9]{4}/ && print "$1\n"' | sort -f | uniq -c -w3 | sort -rMakes a project directory, unless it exists; changes into the dir, and creates an empty git repository, all in one command
gitstart () { if ! [[ -d "$@" ]]; then mkdir -p "$@" && cd "$@" && git init; else cd "$@" && git init; fi }git diff --numstat | awk '{if ($1 == "0" && $2 == "0") print $3}' | xargs git checkout HEADgit diff --numstat -w --no-abbrev | perl -a -ne '$F[0] != 0 && $F[1] !=0 && print $F[2] . "\n";'git show --relative --pretty=format:'' --name-only HASHgit add --patch <filename>git --no-pager whatchanged -1 --pretty=medium <commit_hash>for i in `git log --all --oneline --format=%h`; do git grep SOME_STRING $i; donegit ls-files -z --deleted | xargs -0 git rmfor k in `git branch|perl -pe s/^..//`;do echo -e `git show --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" $k|head -n 1`\\t$k;done|sort -rgit commit --amendgit rm $(git ls-files --deleted)git diff --cachedgit status|awk '/modified:/ { printf("git add %s\n",$3) }; NF ==2 { printf("git add %s\n",$2) }'|shgit config alias.dcolor "diff --color-words"git diff -U10|dwdiff --diff-input -c|less -Rgit diff -U10 |wdiff --diff-input -a -n -w $'\e[1;91m' -x $'\e[0m' -y $'\e[1;94m' -z $'\e[0m' |less -Rgit log --pretty=oneline b56b83.. | wc -lgit log --summary 223286b.. | grep 'Author:' | wc -lgit submodule status | awk '{print $2}' | xargs -P5 -n1 git submodule update --initgit checkout develop; git merge --no-ff myfeaturegit checkout -b myfeature developgit log --graph --oneline --allgit log --statgit archive HEAD --format=zip -o `git rev-parse HEAD`.zipfunction have_here { find "${@:-.}" -type d \( -name .git -o -name .svn -o -name .bzr -o -name CVS -o -name .hg -o -name __pycache__ \) -prune -o -type f -print; }git diff | git apply --reverse
#commit message generator
curl -s http://whatthecommit.com/ | tr -s '\n' ' ' | grep -so 'p>\(.*\)</p' | sed -n 's/..\(.*\)..../\1/p'
git-random(){ gitRan=$(curl -L -s http://whatthecommit.com/ |grep -A 1 ""c" |tail -1 |sed 's/
//'); git commit -m "$gitRan"; }
### rename a branch
git branch -m old_branch new_branch
git branch --set-upstream /
### checkout remote branch
git checkout -b test origin/test
git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short
### make git HEAD same as origin/master
git reset --hard origin/master
git push origin :heads/branch_name
### revert uncommited git changes
git reset --hard HEAD
for i in $(find . -type d -regex ``./[^.].*'' -empty); do touch $i"/.gitignore"; done;git diff --name-only 4ce07ee 7cdf78bgit branch -afunction gitinstall(){ git init; git remote add origin "$@"; git config branch.master.remote origin; git config branch.master.merge refs/heads/master; git pull;}git ls-files -d -z | xargs -0 git update-index --removegit reset --soft HEAD^git fsck --no-reflog | awk '/dangling commit/ {print $3}'git format-patch -k --stdout rev1-1..rev2 | git am -k -3git cat-file -p $(git ls-tree $1 "$2" | cut -d " " -f 3 | cut -f 1)git ls-files -u|awk '{print $4}'|sort -ugit diff-index HEAD|awk '{print $5 " " $6}'|sed -n -e's/^A //p'git status --porcelain | cut -c 1-2 | grep M | wc -l | tr -d " "git remote show originparse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(git::\1)/'
}
export PS1="\[\033]0;\h \w \$(parse_git_branch) \007\][\[\033[01;35m\]\h \[\033[01;34m\]\w \[\033[31m\]\$(parse_git_branch)\[\033[00m\]]$ "git clean -fgit reset --hardgit rm --cached [file]git diff --stagedgit ls-filesgit log --graphgit taggit ls-files -dgit ls-files -d | xargs git checkout --git log --branches --not --remotesgit diff --stat --color master..branchgit rev-list --objects --allgit rm --cached filename.txt