gitワークツリーを作成するためにbashスクリプトを作成しました。cr_wt
#!/bin/bash
unset CDET_ID
unset WT_DIR
source ~/.bashrc
usage()
{
echo "Usage: $0 [ -c CDET_ID ] [ -d Directory Name ]"
exit 2
}
while getopts 'c:d:h' flag
do
case $flag in
c) CDET_ID=$OPTARG ;;
d) WT_DIR=$OPTARG ;;
h) usage
esac
done
if [[ -n $CDET_ID ]] && [[ -n $WT_DIR ]]
then
cd $REPO
git worktree add -b $CDET_ID.my_branch $WT_DIR origin/my_branch
cd $WT_DIR
WS="$(git rev-parse --show-toplevel)"
else
usage
fi
私は次のようにこのスクリプトを実行します。
. cr_wt -c <cdet_id> -d <dir_name>
$WS
私はgitリポジトリのルートディレクトリに保存できるので、実際にソーシングしています。私のエイリアスの多くは、$WS
リポジトリ内のナビゲーションに依存しています。なぜなら、$WS
git worktreeで作成された新しいディレクトリを設定したいからです。このスクリプトをソースとして提供しました。
私が直面した問題は - このスクリプトを実行/インポートした後 -
. cr_wt -c <cdet_id> -d <dir_name>
gitワークツリーが作成されます。その後、次のようにスクリプトをもう一度受け取ると -
. cr_wt -c <cdet_id> -d <dir_name>
その後、bash シェルが終了します。