WORKSPACE="$(git rev-parse --show-toplevel)"
특정 작업 등에 대한 별칭을 작성할 수 있도록 ~/.bashrc
본질적으로 git 저장소의 루트로 설정되는 변수를 설정했습니다.$WORKSPACE
building an image
going to my component directory in the repo
이제 지정된 디렉토리 이름과 분기 이름을 사용하여 새로운 git 작업 트리를 생성하는 bash 쉘 스크립트를 만들었습니다. 내 스크립트 구문은 다음과 같습니다 -
my_script -c <branch_name> -d <directory_name>
이제 문제는 새 작업 트리를 생성한 후 $WORKSPACE
새로 생성된 git 작업 트리의 디렉터리 이름으로 변수를 설정해야 한다는 것입니다.
현재 나는 하고 있다 -
cd $DIR -> which is `directory_name`
WORKSPACE="$(git rev-parse --show-toplevel)"
그러나 이는 도움이 되지 않습니다. 왜냐하면 .의 설정 값은 $WORKSPACE
(스크립트가 트리거되는) 대화형 bash 셸이 아니라 스크립트가 실행되는 비대화형 세션에 적용되기 때문입니다. 따라서 이미지를 빌드하기 위해 별칭을 트리거하면 새로 생성된 작업 트리 디렉터리의 컨텍스트에서는 트리거되지 않습니다.
이 문제를 어떻게 해결할 수 있나요?
답변1
git 명령에 대한 새 값을 얻을 디렉터리에서 다음 줄을 실행합니다.
git rev-parse --show-toplevel > ~/tmpfile
그런 다음 이것을 다음 항목에 추가하십시오 .bashrc
.
WORKPLACE=$(cat ~/tmpfile)
드디어 도망쳤다source ~/.bashrc
이제 파일 시스템 어디에서나 업데이트된 값으로 WORKPLACE를 참조할 수 있습니다.
tmpfile
위치는 쉽게 관리할 수 있지만 .bashrc
위치도 꼭 지정해주세요.