【问题标题】:List local git repos in subfolders列出子文件夹中的本地 git 存储库
【发布时间】:2014-08-09 21:44:40
【问题描述】:

在我的网络服务器上,我喜欢在 /etc/apache2 等各种配置文件夹中创建 git repos,这样我就可以跟踪我对配置文件所做的更改。随着我安装更多服务,如 proftpd、fail2ban、postfix 等,我向每个文件夹添加了更多 git repos。

在这一点上,我不记得他们都在哪里。打字少

find . -type d -iname ".git"

有什么方法可以搜索某个目录中的所有 git 存储库,并 加分,显示分支及其干净/脏状态?比如:

./etc/apache2/.git  [master*]
./etc/proftpd/.git  [master*]
./etc/fail2ban/.git  [master]
./etc/postfix/.git  [master]

星号表示仓库有未提交的更改。

【问题讨论】:

    标签: linux git repository


    【解决方案1】:

    不要为每个产品创建单独的存储库。

    在您的主目录中,创建一个目录来保存所有内容并创建一个 git 存储库。例如,假设您的主机名是myserver,创建

    ~/myserver
    

    然后将其作为 git repo,并在其下包含其他所有内容,例如

    ~/myserver/.git
    ~/myserver/etc
    ~/myserver/etc/network
    ~/myserver/var
    ~/myserver/opt
    ...
    

    如果您想管理多个主机,请设置一个~/config 目录并在该目录下创建主机名文件夹。你应该只需要一个 git repo。

    【讨论】:

    • 如果它是在一个目录中设置的,那就可以了。所有这些服务都位于 linux 文件系统的根目录下,即 /etc、/var 等。我不会为整个文件系统创建 git repo。
    • 不要。 在你的主目录中创建一个 git repo,它只镜像你需要保存文件副本的目录。在您的主目录副本中完成工作,然后将修改后的文件部署到它们的“真实”位置。这是一个多一点的工作,但更干净,因为你不会用虚假的 .git 子目录污染系统目录。
    猜你喜欢
    • 2014-06-05
    • 1970-01-01
    • 2014-10-20
    • 2011-01-05
    • 1970-01-01
    • 2016-07-08
    • 2013-03-03
    • 1970-01-01
    相关资源
    最近更新 更多