我最近把公司配的 mbp 上所有文件都放 git 了,mbp 本身不存任何文件,就只当开发环境和文本编辑器。工作代码放公司 Bitbucket,我自己工作笔记和代码片段放个人 GitHub,自建 GitLab 放项目的文件文档。
但是问题来了,我下班的时候想检查各个文件夹的 git 提交状态,工作中总会打开好几个 git 文件夹,总不能手动一个个 git status -s 查看吧,所以我就想写一个 shell,下班的时候手动跑一下,它会检查我配置的目录下所有 git 的状态,已确保全部提交或者暂存。
不过脚本里总是 cd 来 cd 去指定目录然后 git status -s 判断输出文本,感觉非常麻烦,我记得 Linux 好像是有一个方法能制定某个指令的执行目录的,可惜很久没写 shell 又忘记了。比如 git 命令只能在某目录下用,能不能不 cd,在上几级目录里直接运行制定目录下的 git ?
对于批量检查指定目录的 git 状态,大家还有更好的建议吗?
1
TimePPT 2020-11-19 16:17:18 +08:00
直接图形化界面把需要监控的 git 目录全加进去,自动监控就得了
|
3
k3Sv1 2020-11-19 18:30:00 +08:00 via iPhone
vscode 就有类似的功能吧
|
4
livelazily 2020-11-19 19:11:18 +08:00
git -C 可以指定工作目录, 就不用 cd 来 cd 去了:
git -C projectDir status -s 剩下的就是自己写循环判断之类的了 |
5
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} |
7
jmyz0455 OP @livelazily 太感谢了,要的就是这个。
|
8
jmyz0455 OP @jinliming2 这个好,查了一下 pushd 和 popd,就是我要的功能。之前不知道这个指令,学到了谢谢。
|