diff --git a/Readme.md b/Readme.md index a327d88..8823b77 100644 --- a/Readme.md +++ b/Readme.md @@ -49,6 +49,7 @@ $ brew install git-extras - `git feature` - `git refactor` - `git bug` + - `git promote` ## extras @@ -418,3 +419,7 @@ Set up a git repository (if one doesn't exist), add all files, and make an initi ## git-touch [filename] Call `touch` on the given file, and add it to the current index. One-step creation of new files. + +## git-promote + +Promotes a local topic branch to a remote tracking branch of the same name, by pushing and then setting up the `git config`. diff --git a/bin/git-promote b/bin/git-promote new file mode 100755 index 0000000..5007f8a --- /dev/null +++ b/bin/git-promote @@ -0,0 +1,12 @@ +#!/bin/sh + +branch=$(git symbolic-ref -q HEAD | sed -e 's|^refs/heads/||') + +remote_branch=$(git branch -r | grep "origin/${branch}") +test -z "${remote_branch}" && ( git push origin "${branch}" ) + +origin=$(git config --get "branch.${branch}.remote") +test -z "${origin}" && ( git config --add "branch.${branch}.remote" origin ) + +merge=$(git config --get "branch.${branch}.merge") +test -z "${merge}" && ( git config --add "branch.${branch}.merge" "refs/heads/${branch}" )