0

我正在使用 inotifywait 观看任意文件夹。当文件更改时,我想确定哪个 git repo(如果有)与该文件相关。

我看到了这个答案: 如何判断文件是否被 git 跟踪(通过 shell 退出代码)?

这里的区别是——我真的不在乎 git 是否在跟踪文件,我只想知道——如果 git要跟踪那个文件,它用于哪个 git 现有的 git repo。那是我的问题。

最好的方法是简单地做到这一点:

#!/usr/bin/env bash

cd "$(dirname "$changed_file")" && git rev-parse --show-toplevel 

? 是这样吗?该git rev-parse --show-toplevel命令会始终为该文件提供相关的回购吗?

4

1 回答 1

1

如果 git 要跟踪该文件,它将用于哪个 git 现有的 git repo。

git rev-parse --show-toplevel将向您显示存储库的工作树的顶部,该git add存储库将从那里跟踪您的文件,是的,但是 Git 不会对存储库部分的保存位置提出任何要求。对于您没有明确指出的那些,有一个搜索路径,它git rev-parse --show-toplevel会向您显示它找到的工作树,如果您没有告诉它,或者您告诉它使用的那个。说git help要查看明确使用它的主要选项,如果需要,还可以指向更多文档。

于 2020-03-20T07:22:38.223 回答