我正在重新安装我的操作系统。我的计算机上有成千上万的回购。我有一种感觉,我在一些回购中做了一些改变,而黑客周围没有承诺和/或推动。
从我的Debian PC上的bash shell中,找到尚未提交/推送到其遥控器的更改列表的最佳方法是什么,并决定是否要保留更改?
答案 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存储库中显示未经修改,未跟踪和未删除的更改。”
答案 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的噪声输出。