我该如何检查' git status'对于一些子文件夹?

时间:2017-02-27 14:00:59

标签: git command-line package

我们正在为我们的包管理器使用自定义版本的composer。

我们添加到项目中的每个包实际上都是.git个回购 当然,父repo会忽略这些文件夹(/ Vendor / packages /),当我写git status时,它只显示当前repo的状态。

有没有办法在我的项目下检查.git repos的状态 我正在寻找类似git submodule foreach status的内容。

3 个答案:

答案 0 :(得分:0)

git status .

将显示当前文件夹及其子文件夹的文件状态,但不显示子模块的状态。

要列出子模块下的更改,您必须使用以下行:

# use the build in submodule foreach option
git submodule foreach --recursive git diff --name-status
  

git submodule foreach [--recursive]
  评估每个签出子模块中的任意shell命令

     

如果给出--recursive,则子模块遍历递归(即,给定的shell命令也在嵌套的子模块中进行计算)。

答案 1 :(得分:0)

您可以在find中使用Vendor/packages个子目录,并在每个子目录上执行git status

find Vendor/packages -type d -maxdepth 1 -print -exec sh -c '(echo {} && cd {} && git status && echo)' \;

这是假设供应商/包下的所有文件夹都是git repos。

答案 2 :(得分:0)

你可以试试这个

git status directory_path

for ex

git status upload/