列出具有未压缩更改的git存储库

时间:2014-03-29 19:16:27

标签: git bash debian debian-based

我正在重新安装我的操作系统。我的计算机上有成千上万的回购。我有一种感觉,我在一些回购中做了一些改变,而黑客周围没有承诺和/或推动。

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

3 个答案:

答案 0 :(得分:2)

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

find / -name "*.git" -type d -print0 | xargs -0 -L 1 -i% bash -c "cd %/..; pwd; git status -s -uno"

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

答案 1 :(得分:2)

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

https://github.com/fboender/multi-git-status
“在多个Git存储库中显示未经修改,未跟踪和未删除的更改。”

enter image description here

答案 2 :(得分:0)

上一个答案找到了未提交但未提交的提交。

这将找到:

find / -name "*.git" -type d -print0 | xargs -0 -L 1 -i% bash -c "cd %/..; pwd; git status -s -uno; git cherry -v 2>/dev/null"

git cherry显示未刷新更改的SHA1; -v添加提交评论;和错误重定向抑制了缺少上游的repos的噪声输出。