Skip to content

Instantly share code, notes, and snippets.

@gotofritz
Last active August 22, 2017 18:33
Show Gist options
  • Select an option

  • Save gotofritz/f8a307cd6d20f12db6cb366e18bc148f to your computer and use it in GitHub Desktop.

Select an option

Save gotofritz/f8a307cd6d20f12db6cb366e18bc148f to your computer and use it in GitHub Desktop.
Git bits and pieces
# tells you name of current repo
git rev-parse --abbrev-ref HEAD
# from http://stackoverflow.com/a/5493663/345007
# --follow deals with name changes
# -p does whole diffs
# -- stops input and treats rest as arguments (i.e., filenames)
git log --follow -p -- file
function git-sync {
# Checks name of current branch
repo=`git rev-parse --abbrev-ref HEAD`
# If this is a fork, there must be an 'original' (in git jargon an 'upstream') somewhere.
# This assumes the git upstream was set with `git remote add upstream git@xxxx`
# And that the master is used to sync with upstream, with everyone working on branches
git checkout master && git pull origin master && git fetch upstream && git merge upstream/master && git push origin master
# If you were in a branch, go back to it, and merge what you have just fetched
if [ '$repo' != 'master' ]; then
git checkout $repo && git merge origin master && git push origin $repo
fi
git status
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment