diff options
Diffstat (limited to 'git-subtree-push')
-rwxr-xr-x | git-subtree-push | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/git-subtree-push b/git-subtree-push new file mode 100755 index 0000000..41ffe25 --- /dev/null +++ b/git-subtree-push @@ -0,0 +1,33 @@ +#!/bin/bash +# +# Push changes in a subtree to a remote. +# + +# Parameters +BASENAME="`basename $0`" +REMOTE="$1" +FOLDER="$2" + +# Syntax +if [ -z "$2" ]; then + echo "usage: $BASENAME <gitremote> <folder>" + exit 1 +fi + +# Check remote +if ! git remote | grep -qe "^$REMOTE"; then + echo "fatal: no such remote $REMOTE" + exit +fi + +# Fetch the remote +git fetch $REMOTE master + +# Process +if [ ! -d "$FOLDER" ]; then + echo "fatal: folder $FOLDER does not exist" + exit 1 +else + # Update a subtree + git subtree push --prefix=$FOLDER $REMOTE master +fi |