Fgh,一个CLI,可自动执行克隆存储库的生命周期和组织

2020-12-09 19:38:21

随着您开始为不断增加的GitHub存储库做出贡献,您很快就会意识到在计算机上组织和维护它们所花费的精力。 fgh旨在通过使用CLI(命令行应用程序)来解决此问题,以自动化克隆存储库的整个生命周期,从而节省时间并帮助您扩展!以下是最有用的自动化命令的列表:

fgh remove,fgh clean,fgh ls,fgh pull和fgh visualize可以通过添加-p标志在您当前的存储库结构上试用。该标志的值是所有git repos所在的文件夹的相对根路径。如果我们具有如下所示的存储库结构,并且正在从〜运行fgh,则根文件夹将为./code/。然后将此根文件夹传递到命令中:fgh ls -p =。/ code /。

〜└─代码├─fgh├─点├─龟站点└─工作├─超级秘密代码└─网站

在使用fgh之前,您需要向其授予GitHub存储库的访问权限。只需运行fgh login即可快速进行设置! fgh仅使用此访问权限获取有关存储库的元数据(例如主要语言,如果是私有的话)并克隆存储库。 fgh需要完整的存储库范围才能访问私有存储库。

如果您需要使用GitHub自定义访问令牌(例如PAT),请编辑密码配置文件。在Windows中,它位于Linux和macOS中的〜\ .fgh \ secrets.yml和〜/ .config / fgh / secrets.yml中。您应该如下所示更改/添加拍子:

要开始使用fgh,您需要克隆一个存储库,您可以通过在终端窗口中运行以下命令来进行存储:

〜└─github└─OWNER└─TYPE└─MAIN_LANGUAGE└─NAME

MAIN_LANGUAGE是存储库包含的主要语言。如果未检测到任何语言,则fgh会将其设置为“其他”

如果您想使用自定义结构,请参阅自定义结构文档。该命令的用法如下:

如果要运行fgh clone Matt-Gleich / fgh克隆,默认情况下它将克隆到〜/ github / Matt-Gleich / public / Go / fgh /(〜是您的主目录)。克隆后,该路径将自动复制到剪贴板(可以使用fgh configure或直接编辑配置文件将其关闭)。

注意:在运行X Window系统的Linux机器上,此程序需要xclip或xsel软件包。

使用常规方法(例如使用cd命令)在终端中导航该结构可能有些困难。因此,我们创建了fgh ls命令以及将其与cd结合使用的方法。

您想将现有存储库添加到fgh结构中吗?您只需执行以下命令,它将把该目录中的每个git repo以及所有子目录移入结构:

如果存储库的任何字段(例如其类型,主要语言,所有者或名称)发生更改,则本地存储库的路径将不匹配。

运行fgh update将遍历您的本地存储库,并检查其中是否需要更新。如果他们这样做,fgh会询问您是否要将整个存储库移至该新路径。

例如,如果我克隆了这个存储库,后来又决定对其进行归档,则其路径将从〜/ github / Matt-Gleich / public / Go / fgh /更改为〜/ github / Matt-Gleich / archived / Go / fgh / 。

是否在一定时间内在本地进行了修改?默认情况下,此"时间量"是2个月。但是,可以用标志进行更改!有关更多信息,请参见fgh clean --help。

如果满足上述任一条件,fgh会询问您是否要删除上述存储库。它还会向您显示有关存储库本身的一些信息。

任何采用< owner / name>的命令作为一个参数,如果回购在您的帐户下,您可以离开所有者。例如,我拥有这个仓库,所以我可以做

如果您想轻松地将fgh ls的输出用于cd,只需将以下代码段添加到〜/ .zshrc或〜/ .bashrc中:

#带有fgh的CD(https://github.com/Matt-Gleich/fgh)fcd(){cd" $(fgh ls" $ @" 2> / dev / null)" || (echo"未能找到存储库"&& return 1;))

函数fcd if! cd(fgh ls $ argv)> / dev / null echo"找不到存储库&#34 ;;返回1结束

添加完并重新加载终端后,您只需运行fcd< owner / name>将输出复制到剪贴板,键入cd并粘贴输出,而不是fgh ls< owner / name>。容易得多!

您可以通过基于shell运行以下命令之一来为fgh添加自动补全功能:

不喜欢fgh使用的默认结构吗?别担心,您可以更改它而不会失去任何自动化功能!配置自定义结构在常规配置文件中进行。此文件在Linux或macOS上位于〜/ .config / fgh / config.yaml中,在Windows上位于〜\ .fgh \ config.yaml中(〜是您的主目录)。创建自定义结构分为两部分:

这是相对于主文件夹开始结构的地方。如果在Windows上,请确保使用\。默认情况下,structure_root是github。以下是您将在常规配置文件中放入的示例:

如果我们仅使用上面显示的配置运行fgh克隆Matt-Gleich / fgh,它将被克隆到〜/ Documents / code / Matt-Gleich / public / Go / fgh

这是在structure_root内部使用的结构。如果您使用克隆结构中显示的关键字,它将自动被存储库的值替换,并将存储库的名称添加到末尾。以下是您将在常规配置文件中放入的示例:

如果我们仅使用上面显示的配置运行fgh克隆Matt-Gleich / fgh,它将被克隆到〜/ github / Matt-Gleich / repos / Go / fgh。 如果我们要运行fgh clone Matt-Gleich / fgh克隆,它将仓库复制到〜/ code / Matt-Gleich / fgh。 感谢您考虑为FGH做贡献! 投稿之前,请确保已阅读CONTRIBUTING.md文件。