github.plugin.zsh 2.76 KB
Newer Older
1
2
# Setup hub function for git, if it is available; http://github.com/defunkt/hub
if [ "$commands[(I)hub]" ] && [ "$commands[(I)ruby]" ]; then
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    # Autoload _git completion functions
    if declare -f _git > /dev/null; then
      _git
    fi
    
    if declare -f _git_commands > /dev/null; then
        _hub_commands=(
            'alias:show shell instructions for wrapping git'
            'pull-request:open a pull request on GitHub'
            'fork:fork origin repo on GitHub'
            'create:create new repo on GitHub for the current project'
            'browse:browse the project on GitHub'
            'compare:open GitHub compare view'
        )
        # Extend the '_git_commands' function with hub commands
        eval "$(declare -f _git_commands | sed -e 's/base_commands=(/base_commands=(${_hub_commands} /')"
    fi
20
    # eval `hub alias -s zsh`
21
22
23
24
25
26
27
28
29
30
31
    function git(){
        if ! (( $+_has_working_hub  )); then
            hub --version &> /dev/null
            _has_working_hub=$(($? == 0))
        fi
        if (( $_has_working_hub )) ; then
            hub "$@"
        else
            command git "$@"
        fi
    }
32
fi
33
34
35
36
37
38

# Functions #################################################################

# https://github.com/dbb 


39
40
41
42
# empty_gh [NAME_OF_REPO]
#
# Use this when creating a new repo from scratch.
empty_gh() { # [NAME_OF_REPO]
43
    repo=$1
44
    ghuser=$(  git config github.user )
45
46
47
48
49
50
51

    mkdir "$repo"
    cd "$repo"
    git init
    touch README
    git add README
    git commit -m 'Initial commit.'
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
    git remote add origin git@github.com:${ghuser}/${repo}.git
    git push -u origin master
}

# new_gh [DIRECTORY]
#
# Use this when you have a directory that is not yet set up for git.
# This function will add all non-hidden files to git.
new_gh() { # [DIRECTORY]
    cd "$1"
    ghuser=$( git config github.user )

    git init
    # add all non-dot files
    print '.*'"\n"'*~' >> .gitignore
    git add ^.*
    git commit -m 'Initial commit.'
    git remote add origin git@github.com:${ghuser}/${repo}.git
70
71
72
    git push -u origin master
}

73
74
75
76
# exist_gh [DIRECTORY]
#
# Use this when you have a git repo that's ready to go and you want to add it
# to your GitHub.
77
78
79
exist_gh() { # [DIRECTORY]
    cd "$1"
    name=$( git config user.name )
80
    ghuser=$( git config github.user )
Michael Nikitochkin's avatar
Michael Nikitochkin committed
81
    repo=$1
82

83
    git remote add origin git@github.com:${ghuser}/${repo}.git
84
85
86
    git push -u origin master
}

Samvel Khalatyan's avatar
Samvel Khalatyan committed
87
88
89
90
91
92
93
94
95
# git.io "GitHub URL"
#
# Shorten GitHub url, example:
#   https://github.com/nvogel/dotzsh    >   http://git.io/8nU25w  
# source: https://github.com/nvogel/dotzsh
# documentation: https://github.com/blog/985-git-io-github-url-shortener
#
git.io() {curl -i -s http://git.io -F "url=$1" | grep "Location" | cut -f 2 -d " "}

96
97
# End Functions #############################################################