トップ 最新 追記

Masa's blog

検索キーワード:

2015年04月14日 My scripts for git [長年日記]

_ My scripts for git

These are my scripts for git in only local using :P

git_setup.sh

#! /bin/sh
trap "func_sweep; exit 1" INT TERM
#
function func_sweep {
	rm -f /tmp/git_setup.$$.*.tmp
}
#
function func_help {
	echo "Usage : $0 [-u USER_NAME] [-m MAIL_ADDRESS]"
	echo "configure setup."
	echo "show config without any options."
	echo ""
	echo " -u USER_NAME        user name for git."
	echo " -m MAIL_ADDRESS     e-mail address for git."
}
#
if [ "X$1" = "X-h" -o "X$1" = "X--help" ]
then
	func_help
	exit 1
fi
#
username=""
email=""
while [ "$#" != "0" ]
do
	case $1 in
	-u )
		shift
		username=$1
		;;
	-m )
		shift
		email=$1
		;;
	*)
		func_help
		exit 1
		;;
	esac
	shift
done
#
if [ "X${username}" != "X" ]
then
	git config --global user.name "${username}"
fi
#
if [ "X${email}" != "X" ]
then
	git config --global user.email ${email}
fi
#
git config --get user.name
git config --get user.email
#
func_sweep
#
exit 0

git_init.sh

#! /bin/sh
trap "func_sweep; exit 1" INT TERM
#
function func_sweep {
	rm -f /tmp/git_init.$$.*.tmp
}
#
function func_help {
	echo "Usage : $0 [-b]"
	echo "initialize source directory."
	echo ""
	echo " -b	initialize for bare repository."
	echo ""
	echo ".gitignore sample"
	echo "  .gitignore"
	echo "  .*"
	echo ""
	echo ".gitatributes sample"
	echo "  .exe binary"
	echo "  .xls binary"
	echo "  .xlsx binary"
	echo "  .doc binary"
	echo "  .docx binary"
}
#
if [ "X$1" = "X-h" -o "X$1" = "X--help" ]
then
	func_help
	exit 1
fi
#
bare=""
while [ "$#" != "0" ]
do
        case $1 in
        -b)
                bare="--bare"
                ;;
        *)
                func_help
                exit 1
                ;;
        esac
        shift
done
#
git init ${bare}
git config --local core.quotepath false
#
func_sweep
#
exit 0

git_commit.sh

#! /bin/sh
trap "func_sweep; exit 1" INT TERM
#
function func_sweep {
	rm -f /tmp/git_commit.$$.*.tmp
}
#
function func_help {
	echo "Usage : $0 [-m MESSAGE]"
	echo "commit all updates."
	echo ""
	echo " -m MESSAGE        message with commit(default YYYY/MM/DD hh:mm:ss)."
}
#
if [ "X$1" = "X-h" -o "X$1" = "X--help" ]
then
	func_help
	exit 1
fi
#
message=""
all="no"
while [ "$#" != "0" ]
do
	case $1 in
	-m )
		shift
		message="$1"
		;;
	-a )
		all="yes"
		;;
	*)
		func_help
		exit 1
		;;
	esac
	shift
done
#
if [ "X${message}" = "X" ]
then
	message=`date +"%Y/%m/%d %H:%M:%S"`
fi
#
if [ "X${all}" = "Xyes" ]
then
	for i in `find . -name .git`
	do
		dir=`echo $i | sed -e 's/\.git$//'`
		(cd ${dir} && git add *; git commit -a -m "${message}")
	done
else
	git add *
	git commit -a -m "${message}"
fi
#
func_sweep
#
exit 0

git_branch.sh

#! /bin/sh
trap "func_sweep; exit 1" INT TERM
#
function func_sweep {
	rm -f /tmp/git_branch.$$.*.tmp
}
#
function func_help {
	echo "Usage : $0 [-a]"
	echo "        $0 -c BRANCH [-p POINT]"
	echo "        $0 -d BRANCH"
	echo "        $0 -g BRANCH"
	echo "        $0 -m BRANCH"
	echo "manage branch."
	echo "show branches without any options or with -a option."
	echo ""
	echo " -a               show both branches in local and remote."
	echo " -c BRANCH        create BRANCH."
	echo " -p POINT         point which branch from(default HEAD)."
	echo " -d BRANCH        delete BRANCH."
	echo " -g BRANCH        go to BRANCH."
	echo " -m BRANCH        merge BRANCH."
}
#
if [ "X$1" = "X-h" -o "X$1" = "X--help" ]
then
	func_help
	exit 1
fi
#
all=""
opt_branch=""
branch=""
point=""
while [ "$#" != "0" ]
do
	case $1 in
	-a)
		all="$1"
		;;
	-c | -d | -g | -m)
		opt_branch="$1"
		shift
		branch="$1"
		;;
	-p)
		shift
		point="$1"
		;;
	*)
		func_help
		exit 1
		;;
	esac
	shift
done
#
if [ "X${opt_branch}" = "X-c" ]
then
	git branch ${branch} ${point}
elif [ "X${opt_branch}" = "X-d" ]
then
	git branch -D ${branch}
elif [ "X${opt_branch}" = "X-g" ]
then
	git checkout ${branch}
elif [ "X${opt_branch}" = "X-m" ]
then
	git merge ${branch}
else
	git branch ${all}
fi
#
func_sweep
#
exit 0

git_status.sh

#! /bin/sh
trap "func_sweep; exit 1" INT TERM
#
function func_sweep {
	rm -f /tmp/git_status.$$.*.tmp
}
#
function func_help {
	echo "Usage : $0"
	echo "show status."
}
#
if [ "X$1" = "X-h" -o "X$1" = "X--help" ]
then
	func_help
	exit 1
fi
#
git status
#
func_sweep
#
exit 0

git_tag.sh

#! /bin/sh
trap "func_sweep; exit 1" INT TERM
#
function func_sweep {
	rm -f /tmp/git_tag.$$.*.tmp
}
#
function func_help {
	echo "Usage : $0 -c TAG_NAME [-m MESSAGE]"
	echo "        $0 -d TAG_NAME"
	echo "manage tag."
	echo "show tags without any options."
	echo ""
	echo " -c TAG_NAME        create tag."
	echo " -m MESSAGE         message with tag(default YYYY/MM/DD hh:mm:ss)."
	echo " -d TAG_NAME        delete tag."
}
#
if [ "X$1" = "X-h" -o "X$1" = "X--help" ]
then
	func_help
	exit 1
fi
#
action=""
tag=""
message=""
while [ "$#" != "0" ]
do
	case $1 in
	-c )
		action=$1
		shift
		tag="$1"
		;;
	-m )
		shift
		message="$1"
		;;
	-d )
		action=$1
		shift
		tag="$1"
		;;
	*)
		func_help
		exit 1
		;;
	esac
	shift
done
#
if [ "X${message}" = "X" ]
then
	message=`date +"%Y/%m/%d %H:%M:%S"`
fi
#
if [ "X${action}" = "X" ]
then
	git tag
elif [ "X${action}" = "X-c" ]
then
	git tag -a -f "${tag}" -m "${message}"
elif [ "X${action}" = "X-d" ]
then
	git tag -d "${tag}"
else
	func_help
	exit 1
fi
#
func_sweep
#
exit 0

git_log.sh

#! /bin/sh
trap "func_sweep; exit 1" INT TERM
#
function func_sweep {
	rm -f /tmp/git_log.$$.*.tmp
}
#
function func_help {
	echo "Usage : $0 [-d]"
	echo "show log."
	echo ""
	echo " -d        show log with diff."
}
#
if [ "X$1" = "X-h" -o "X$1" = "X--help" ]
then
	func_help
	exit 1
fi
#
opt_diff=""
while [ "$#" != "0" ]
do
	case $1 in
	-d )
		shift
		opt_diff="-p"
		;;
	*)
		func_help
		exit 1
		;;
	esac
	shift
done
#
git log ${opt_diff}
#
func_sweep
#
exit 0

git_diff.sh

#! /bin/sh
trap "func_sweep; exit 1" INT TERM
#
function func_sweep {
	rm -f /tmp/git_diff.$$.*.tmp
}
#
function func_help {
	echo "Usage : $0"
	echo "show diff between comitted source and uncomitted source."
}
#
if [ "X$1" = "X-h" -o "X$1" = "X--help" ]
then
	func_help
	exit 1
fi
#
git diff
#
func_sweep
#
exit 0

git_export.sh

#! /bin/sh
trap "func_sweep; exit 1" INT TERM
#
function func_sweep {
	rm -f /tmp/git_export.$$.*.tmp
}
#
function func_help {
	echo "Usage : $0 -d DEST_DIR [-p POINT]"
	echo "export source into directory."
	echo ""
	echo " -d DEST_DIR        directory which export sources into."
	echo " -p POINT           point to export(default HEAD)."
}
#
if [ "X$1" = "X-h" -o "X$1" = "X--help" ]
then
	func_help
	exit 1
fi
#
destdir=""
point=""
while [ "$#" != "0" ]
do
	case $1 in
	-d )
		shift
		destdir="$1"
		;;
	-p )
		shift
		point="$1"
		;;
	*)
		func_help
		exit 1
		;;
	esac
	shift
done
#
if [ "X${destdir}" = "X" ]
then
	func_help
	exit 1
fi
#
if [ "X${point}" = "X" ]
then
	point="HEAD"
fi
#
if [ ! -e "${destdir}" ]
then
	mkdir "${destdir}"
fi
export destdir
git archive --format=tar ${point} | (cd ${destdir} && tar xvf -)
#
func_sweep
#
exit 0

git_show.sh

#! /bin/sh
trap "func_sweep; exit 1" INT TERM
#
function func_sweep {
	rm -f /tmp/git_show.$$.*.tmp
}
#
function func_help {
	echo "Usage : $0 -p POINT -f FILE"
	echo "show file at specified point."
	echo ""
	echo " -p POINT           point to show(default HEAD)."
	echo " -f FILE            file to show."
}
#
if [ "X$1" = "X-h" -o "X$1" = "X--help" ]
then
	func_help
	exit 1
fi
#
point=""
file=""
while [ "$#" != "0" ]
do
	case $1 in
	-p )
		shift
		point="$1"
		;;
	-f )
		shift
		file="$1"
		;;
	*)
		func_help
		exit 1
		;;
	esac
	shift
done
#
if [ "X${point}" = "X" ]
then
	point="HEAD"
fi
#
git show ${point}:${file}
#
func_sweep
#
exit 0

git_clone.sh

#! /bin/sh
trap "func_sweep; exit 1" INT TERM
#
function func_sweep {
	rm -f /tmp/git_clone.$$.*.tmp
}
#
function func_help {
	echo "Usage : $0 -u URI [-d DIRECTORY]"
	echo "clone URI into DIRECTORY."
	echo ""
	echo " -u URI              URI to get."
	echo " -d DIRECTORY        DIRECTORY to get into."
}
#
if [ "X$1" = "X-h" -o "X$1" = "X--help" ]
then
	func_help
	exit 1
fi
#
uri=""
dir=""
while [ "$#" != "0" ]
do
	case $1 in
	-u )
		shift
		uri="$1"
		;;
	-d )
		shift
		dir="$1"
		;;
	*)
		func_help
		exit 1
		;;
	esac
	shift
done
#
if [ "X${dir}" = "X" ]
then
	git clone "${uri}"
else
	git clone "${uri}" "${dir}"
fi
#
func_sweep
#
exit 0

git_pull.sh

#! /bin/sh
trap "func_sweep; exit 1" INT TERM
#
function func_sweep {
	rm -f /tmp/git_pull.$$.*.tmp
}
#
function func_help {
	echo "Usage : $0 [-u URI]"
	echo "fetch and merge sources from URI."
	echo ""
	echo " -u URI              URI to get(default URI which cloned from)."
}
#
if [ "X$1" = "X-h" -o "X$1" = "X--help" ]
then
	func_help
	exit 1
fi
#
uri=""
while [ "$#" != "0" ]
do
	case $1 in
	-u )
		shift
		uri="$1"
		;;
	*)
		func_help
		exit 1
		;;
	esac
	shift
done
#
if [ "X${uri}" = "X" ]
then
	git pull
else
	git pull "${uri}"
fi
#
func_sweep
#
exit 0

git_push.sh

#! /bin/sh
trap "func_sweep; exit 1" INT TERM
#
function func_sweep {
	rm -f /tmp/git_push.$$.*.tmp
}
#
function func_help {
	echo "Usage : $0 [-u URI] [-f LOCAL_BRANCH] [-t REMOTE_BRANCH]"
	echo "push sources into URI."
	echo ""
	echo " -u URI              URI to get(default URI which cloned from)."
	echo " -f LOCAL_BRANCH     local branch name to push from."
	echo " -t REMOTE_BRANCH    remote branch name to push into."
}
#
if [ "X$1" = "X-h" -o "X$1" = "X--help" ]
then
	func_help
	exit 1
fi
#
uri=""
local_branch=""
remote_branch=""
while [ "$#" != "0" ]
do
	case $1 in
	-u )
		shift
		uri="$1"
		;;
	-f )
		shift
		local_branch="$1"
		;;
	-t )
		shift
		remote_branch="$1"
		;;
	*)
		func_help
		exit 1
		;;
	esac
	shift
done
#
if [ "X${uri}" = "X" ]
then
	if [ "X${local_branch}" = "X" -a "X${remote_branch}" = "X" ]
	then
		git push
	else
		git push "${local_branch}:${remote_branch}"
	fi
else
	if [ "X${local_branch}" = "X" -a "X${remote_branch}" = "X" ]
	then
		git push "${uri}"
	else
		git push "${uri}" "${local_branch}:${remote_branch}"
	fi
fi
#
func_sweep
#
exit 0

.gitignore

.gitignore
.*

.gitatributes

.exe binary