我编写了一个 bash 脚本来创建 git 工作树-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 worktree 被创建。之后,如果我再次获取脚本,例如 -
. cr_wt -c <cdet_id> -d <dir_name>
然后 bash shell 就会退出。