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 쉘이 종료됩니다.