在我的网络服务器上,我喜欢在各种配置文件夹中创建 git repos,例如 /etc/apache2
等等,这样我就可以随时跟踪我对配置文件所做的更改.随着我安装更多服务,如 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]
星号表示 repo 有未提交的更改。
最佳答案
不要为每个产品创建单独的存储库。
在您的主目录中,创建一个目录来 stash 所有内容并创建一个 git 存储库。例如,假设您的主机名是 myserver
,创建
~/myserver
然后将其设为 git 仓库,例如,将其他所有内容都置于其下
~/myserver/.git
~/myserver/etc
~/myserver/etc/network
~/myserver/var
~/myserver/opt
...
如果你想管理多个主机,设置一个~/config
目录并在其下创建主机名文件夹。你应该只需要一个 git 仓库。
关于linux - 列出子文件夹中的本地 git repos,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25223364/