如何用脚本命令批量检查不同文件夹的 git 状态?

2020-11-19 16:07:28 +08:00
 jmyz0455

我最近把公司配的 mbp 上所有文件都放 git 了,mbp 本身不存任何文件,就只当开发环境和文本编辑器。工作代码放公司 Bitbucket,我自己工作笔记和代码片段放个人 GitHub,自建 GitLab 放项目的文件文档。

但是问题来了,我下班的时候想检查各个文件夹的 git 提交状态,工作中总会打开好几个 git 文件夹,总不能手动一个个 git status -s 查看吧,所以我就想写一个 shell,下班的时候手动跑一下,它会检查我配置的目录下所有 git 的状态,已确保全部提交或者暂存。

不过脚本里总是 cd 来 cd 去指定目录然后 git status -s 判断输出文本,感觉非常麻烦,我记得 Linux 好像是有一个方法能制定某个指令的执行目录的,可惜很久没写 shell 又忘记了。比如 git 命令只能在某目录下用,能不能不 cd,在上几级目录里直接运行制定目录下的 git ?

对于批量检查指定目录的 git 状态,大家还有更好的建议吗?

1008 次点击
所在节点    程序员
8 条回复
TimePPT
2020-11-19 16:17:18 +08:00
直接图形化界面把需要监控的 git 目录全加进去,自动监控就得了
jmyz0455
2020-11-19 17:29:28 +08:00
@TimePPT 请问用啥做这个本地 git 的目录监控?
k3Sv1
2020-11-19 18:30:00 +08:00
vscode 就有类似的功能吧
livelazily
2020-11-19 19:11:18 +08:00
git -C 可以指定工作目录, 就不用 cd 来 cd 去了:

git -C projectDir status -s

剩下的就是自己写循环判断之类的了
jinliming2
2020-11-19 22:19:12 +08:00
直接一个循环就搞定了啊,cd 不 cd 无所谓把?
把要检查的目录一行一个放在一个文本文件里,一个循环就好了,顺便把路径也会自动打出来:

#!/bin/bash

LIST=./list.txt

while read line; do
pushd ${line}
git status -s
popd
done < ${LIST}
jmyz0455
2020-11-20 10:56:04 +08:00
@k3Sv1 vsc 不是只能对应一个目录嚒,我看看有没有插件可以实现。
jmyz0455
2020-11-20 10:56:27 +08:00
@livelazily 太感谢了,要的就是这个。
jmyz0455
2020-11-20 10:59:38 +08:00
@jinliming2 这个好,查了一下 pushd 和 popd,就是我要的功能。之前不知道这个指令,学到了谢谢。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/727173

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX