列出未推送更改的 git 存储库

Gre*_*reg 5 git bash debian debian-based

我正在重新安装我的操作系统。我的计算机上有数千个存储库。我有一种感觉,我在一些未提交和/或推送的 hack 的同时对某些 repos 进行了一些更改。

从我的 Debian PC 上的 bash shell,查找尚未提交/推送到远程的更改列表并决定我是否要保留更改的最佳方法是什么?

xaa*_*xaa 5

您可能喜欢 Ferry Boender 的 multi-git-status 项目。

https://github.com/fboender/multi-git-status
“在多个 Git 存储库中显示未提交、未跟踪和未推送的更改。”

在此处输入图片说明


Dig*_*uma 2

我假设找到每个存储库并git status在每个存储库中运行就足以满足您的需求。在这种情况下,以下内容可能是您的起点:

find / -name "*.git" -type d -print0 | xargs -0 -L 1 -i% bash -c "cd %/..; pwd; git status -s -uno"
Run Code Online (Sandbox Code Playgroud)

find遍历您的文件系统,从/(您可能希望将其限制为也许~)开始,搜索 .git 目录。输出(以空分隔来处理有趣的文件名)通过管道传输到 xargs,xargs 发送cd到每个存储库,打印pwd, 和短格式 git-status,而不列出未跟踪的文件。