Gitの操作を補助するために、ちょっとしたスクリプトを作ったので公開します。
通信状態の悪いところから簡単に処理を飛ばせるように、と作ったスクリプトです。
自由に改変してお使いください。
gitpp.sh
#!/bin/bash
PATH=/usr/local/sbin:/usr/bin:/bin
while true; do
# コンテキスト出力でメニュー表示
cat <<EOF
接続メニュー(接続ユーザ名)
1: git init レポジトリ初期化
2: git first commit
3: git add -A 全件ステージング
4: git add -i 選択ステージング
5: git commit -m Auto Commit コミット
6: git commit 対話コミット
7: git status 変更されたファイルの一覧を表示したい
8: git diff 変更されたファイルの差分を見たい
9: git log コミットログを見たい
10: git show コミットの詳細を確認したい
11: git mv ファイルやディレクトリ名を変更したい、移動したい
12: git rm ファイルを削除したい
13: git clean 管理対象ではないファイルを削除したい(確認)
14: git clean 管理対象ではないファイルを削除したい(実行)
15: git checkout -- 手元で変更したインデックスに登録されていないファイルを元に戻したい
16: git reset HEAD -- インデックスに登録したファイルを取り消したい
17: git add -u 以前にコミットしたことのあるファイルだけをすべてインデックスに登録したい
99:終了
数字を入力してください
EOF
# readコマンドで標準入力(stdin)を変数${ACT_MAIN}に格納
read ACT_MAIN
# case文で分岐
case ${ACT_MAIN} in
1)
echo -n "プロジェクト名(レポジトリ名)を入力してください > "
read PROJECTNAME
if [ "x${PROJECTNAME}" = "x" ]; then
echo "エラー:プロジェクト名(レポジトリ名)が入力されませんでした"
break
fi
echo -n "githubのユーザ名を入力してください > "
read GITUSERNAME
if [ "x${GITUSERNAME}" = "x" ]; then
echo "エラー:ユーザ名が入力されませんでした"
break
fi
echo -n "githubの登録メールアドレスを入力してください > "
read GITUSERMAIL
if [ "x${GITUSERMAIL}" = "x" ]; then
echo "エラー:メールが入力されませんでした"
break
fi
git config --global user.name "${GITUSERNAME}"
git config --global user.email "${GITUSERMAIL}"
echo "# ${PROJECTNAME}" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin "https://github.com/${GITUSERNAME}/${PROJECTNAME}.git"
git push -u origin master
break
;;
2)
echo -n "プロジェクト名を入力してください > "
read PROJECTNAME
if [ "x${PROJECTNAME}" = "x" ]; then
PROJECTNAME="NewProject `date +%Y%m%d`"
fi
echo -n "githubのユーザ名を入力してください > "
read GITUSERNAME
if [ "x${GITUSERNAME}" = "x" ]; then
echo "エラー:ユーザ名が入力されませんでした"
break
fi
echo "# ${PROJECTNAME}" >> README.md
git remote add origin "https://github.com/${GITUSERNAME}/${PROJECTNAME}.git"
git push -u origin master
break
;;
3)
git add -A
break
;;
4)
git add -i
break
;;
5)
git commit -m "`date +%Y%m%d` : Auto Commit"
break
;;
6)
git commit
break
;;
7)
git status
break
;;
8)
git diff
break
;;
9)
git log
break
;;
10)
echo -n "コミットや HEAD を指定してください > "
read HEADCOMMIT
git show ${HEADCOMMIT}
break
;;
11)
echo -n "古いファイルやパスを指定 > "
read GITOLD
if [ "x${GITOLD}" = "x" ]; then
echo "エラー:入力されませんでした"
break
fi
echo -n "新しいファイルやパスを指定 > "
read GITNEW
if [ "x${GITNEW}" = "x" ]; then
echo "エラー:入力されませんでした"
break
fi
git mv ${GITOLD} ${GITNEW}
break
;;
12)
echo -n "消したいファイルを指定 > "
read GITRM
if [ "x${GITRM}" = "x" ]; then
echo "エラー:入力されませんでした"
break
fi
git rm ${GITRM}
break
;;
13)
git clean -n
break
;;
14)
git clean -f
break
;;
15)
echo -n "元に戻したいファイルを指定 > "
read GITCO
if [ "x${GITCO}" = "x" ]; then
echo "エラー:入力されませんでした"
break
fi
git checkout -- ${GITCO}
break
;;
16)
echo -n "戻したいファイルを指定 > "
read GITREIN
if [ "x${GITREIN}" = "x" ]; then
echo "エラー:入力されませんでした"
break
fi
git reset HEAD -- ${GITREIN}
break
;;
17)
git add -u
break
;;
99)
break
;;
*)
printf "エラー: 無効な項目 \"%s\" が入力されました\n" "${ACT_MAIN}"
;;
esac
done
使い方
chmod -x gitpp.sh
./gitpp.sh