V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
jmyz0455
V2EX  ›  程序员

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

  •  
  •   jmyz0455 · 2020-11-19 16:07:28 +08:00 · 1179 次点击
    这是一个创建于 1489 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    8 条回复    2020-11-20 10:59:38 +08:00
    TimePPT
        1
    TimePPT  
       2020-11-19 16:17:18 +08:00
    直接图形化界面把需要监控的 git 目录全加进去,自动监控就得了
    jmyz0455
        2
    jmyz0455  
    OP
       2020-11-19 17:29:28 +08:00
    @TimePPT 请问用啥做这个本地 git 的目录监控?
    k3Sv1
        3
    k3Sv1  
       2020-11-19 18:30:00 +08:00 via iPhone
    vscode 就有类似的功能吧
    livelazily
        4
    livelazily  
       2020-11-19 19:11:18 +08:00
    git -C 可以指定工作目录, 就不用 cd 来 cd 去了:

    git -C projectDir status -s

    剩下的就是自己写循环判断之类的了
    jinliming2
        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}
    jmyz0455
        6
    jmyz0455  
    OP
       2020-11-20 10:56:04 +08:00
    @k3Sv1 vsc 不是只能对应一个目录嚒,我看看有没有插件可以实现。
    jmyz0455
        7
    jmyz0455  
    OP
       2020-11-20 10:56:27 +08:00
    @livelazily 太感谢了,要的就是这个。
    jmyz0455
        8
    jmyz0455  
    OP
       2020-11-20 10:59:38 +08:00
    @jinliming2 这个好,查了一下 pushd 和 popd,就是我要的功能。之前不知道这个指令,学到了谢谢。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5780 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 01:44 · PVG 09:44 · LAX 17:44 · JFK 20:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.