使用本地目录根目录对 git 存储库进行本地化?

Localization of git repo with local directory root?

我们的 git 回购代码集中有几个配置文件和 bash 脚本需要设置目录路径。他们应该都从 repo 所在的地方开始。换句话说,我把我的仓库放在 /home/userMe 但你把它放在 /home/userYou/code/.

如何构建 bash 脚本,使其:

常用的方法是 scripts to know where they are located,例如使用 dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)。这样,每个必须引用同一存储库中另一个脚本的脚本都可以通过对树的同一部分中的文件使用 "${dir}/foo/bar" 样式路径和对具有相同祖父目录的文件使用 "$(dirname -- "$(dirname -- "$dir")")/foo/bar" 来实现.这是使您的脚本从任何地方都可执行的必要条件(但不一定足够)。

您当然可以 source 存储库顶层的脚本执行相同的操作。然而,这实际上 复杂,因为每个脚本仍然必须能够相对于自身 定位 该脚本,此时它也可能知道自己的位置。