Linux 환경에서는 디렉토리 아래에 git 저장소를 만듭니다.
/myspace/darshan/repositories
그래서 제가 작업할 각 기능이나 버그에 대해 별도의 git 저장소가 있을 것입니다.
다음과 같은 다른 저장소에서 동일한 몇 가지 공통 작업이 있습니다.
building an image
copy an image
going to my component directory
등
저장소 이름의 루트를 제외하면 모두 동일한 경로에 있습니다. 즉, 빌드 이미지가 -에 위치한다고 가정합니다.
/myspace/darshan/repositories/<feature>/bin/sys/
리포지토리 간에 변경되는 유일한 것은 디렉터리입니다.
위에서 언급한 작업에 대한 몇 가지 별칭을 작성하고 싶습니다.
build
cp_image
goto_comp
나는 작업 공간의 깊이와 내가 속한 작업 공간에 관계없이 이러한 모든 별칭이 작동하기를 원합니다.
이 설정을 어떻게 만들 수 있나요?
답변1
git rev-parse --show-toplevel
한 가지 가능한 방법은 현재 저장소의 기본 디렉터리를 출력하는 이것을 사용하는 것입니다 . 따라서 git 저장소의 하위 디렉터리는 $(git rev-parse --show-toplevel)
해당 저장소의 기본 디렉터리가 되며
cd $(git rev-parse --show-toplevel)/bin/sys
bin/sys
항상 현재 저장소의 하위 디렉터리 로 이동합니다 .
Git 저장소 외부에서 사용할 때는 주의하세요. 실제로 해당 저장소에 있는지 먼저 확인해야 합니다. git rev-parse --show-toplevel
Git 저장소 외부에서 실행하면 0이 아닌 종료 코드로 종료되므로 사용할 수 있습니다.