-
Notifications
You must be signed in to change notification settings - Fork 5
/
git_init-branch.sh
58 lines (53 loc) · 2.54 KB
/
git_init-branch.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/bin/bash
#########################################################################
# Copyright (C) 2021 Akito <[email protected]> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation, either version 3 of the License, or #
# (at your option) any later version. #
# #
# This program is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
# #
# You should have received a copy of the GNU General Public License #
# along with this program. If not, see <http://www.gnu.org/licenses/>. #
#########################################################################
# http://redsymbol.net/articles/unofficial-bash-strict-mode/
set -o errexit
set -o nounset
set -o pipefail
function getCurrentBranch { git rev-parse --abbrev-ref HEAD 2>/dev/null; }
function getCurrentRemote { git config --get branch.$current_branch.remote; }
function errOut { echo "Something went wrong!"; }
trap errOut ERR
provided_branch="$1"
if [[ -z "${provided_branch}" ]]; then
echo "Please provide the Name of the Branch you want to create!"
exit 1
fi
current_branch="$(getCurrentBranch)"
current_remote="$(getCurrentRemote)"
echo "Create new Branch"
echo "=============================================="
git checkout -b "${provided_branch}"
echo "=============================================="
echo "=============================================="
echo
wait
current_branch="$(getCurrentBranch)"
echo "Push new Branch to default Remote"
echo "=============================================="
git push "${current_remote}" "${current_branch}"
echo "=============================================="
echo "=============================================="
echo
echo "Setting Remote counter-part of this Local Branch as Upstream"
echo "=============================================="
git branch --set-upstream-to="${current_remote}/${current_branch}" "${current_branch}"
echo "=============================================="
echo "=============================================="
echo
echo "Done!"