运行 git shell 脚本中的命令,无需将目录更改为 repo

Run git commands in shell script without change directory to repo

我正在编写一个 shell 脚本 (zsh),它将 运行 git 命令用于一组目录。其中一些项目包含 .rvmrc 个文件,可能需要一段时间才能 运行。当我 cd 进入目录以 运行 一个命令时,它会激活 .rvmrc 这确实大大减慢了脚本速度。

示例命令:$(cd $dir && exec git branch)

我想 运行 命令而不 cd 进入我脚本中的目录,或者暂时停用 .rvmrc 文件以便 cd 进入目录没有 运行 rvmrc.

有什么想法吗?

您可以指定 git 工作目录和 .git 位置:

git --work-tree=$dir --git-dir=$dir/.git branch
git -C $dir branch

还有环境参数可用,请查看manuals