在linux环境中,我在目录下创建git存储库 -
/myspace/darshan/repositories
因此,我将要处理的每个功能或错误都会有单独的 git 存储库。
我将有一些在不同存储库中相同的常见任务,例如 -
building an image
copy an image
going to my component directory
ETC
除存储库名称的根目录外,所有这些都位于同一路径中。即,假设构建图像将位于以下位置 -
/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 存储库之外运行,将以非零退出代码退出,因此您可以使用它。