dotbare

2025-12-11 0 342

dotbare

介绍

dotbare是一个命令行实用程序,可帮助管理DotFiles和或作为通用模糊Git客户端。作为一种互补的管理工具,它围绕着git存储库,从中查询git信息,并通过FZF显示它们以获得交互式体验。它最初是受使用FZF的git包装器Lengit的启发。 dotbare使用了不同的实现方法,并专注于管理和与系统互动式互动。由于dotbare的灵活实现,它可以轻松地与Symlink/GNU Stow设置集成,甚至可以用作任何GIT存储库中使用的通用模糊git客户端。

作为通用的模糊git客户端(使用--git标志), dotbare动态确定最高级别.git文件夹和处理git信息,并在当前工作树中执行git操作。

您可以在此处找到如何使用Git Bare存储库来管理Dotfiles。或视频说明,帮助我开始。如果您当前正在使用Symlink/GNU Stow设置,请在此处查看如何与它们集成dotbare

选择并编辑杂物。舞台和脱离杂物。交互式日志查看器。有关更多功能和命令,请查看Wiki。

为什么

对于我来说,开始使用版本控制来管理Dotfiles一直是一项艰难,因为“ GNU Stow”这样的工具确实使我吓到了所有的符号链接,直到我发现使用Git Bare存储库来管理DotFiles,零symlinks,零symlinks,最小的设置,在将点files保持在该位置的同时,它们应该是。

但是,它始终缺乏一些交互式体验,因为默认情况下,它没有在git命令或文件路径上提供任何自动完成。将设置迁移到另一个系统时,这也是一种痛苦,因为您必须手动解决所有GIT结帐问题。

dotbare通过提供一系列脚本以前缀F(例如dotbare fadddotbare flog等)来解决上述问题,该脚本将通过处理所有GIT信息并通过FZF显示它来实现交互体验。此外, dotbare还带有命令行完成,您可以选择完成git命令或dotbare命令。只要您使用git, dotbare还具有与GNU stow或任何Symlink设置的能力。易于迁移到所需设置最小的任何系统。此外,使用一个简单的标志--git ,您现在还可以将dotbare用作通用模糊git客户端来管理任何git存储库。

安装

ZSH

dotbare应该与任何ZSH插件管理器一起使用,以下只是演示。请查看Wiki有关如何启用ZSH完成的Wiki。

Zinit

zinit light kazhala/ dotbare 

如图

无花果添加了您现有终端的应用程序,快捷方式和自动完成。

只需单击即可安装dotbare

哦,我 – Zsh

  • 将存储库克隆到OH-MY-ZSH插件目录中。

    git clone https://g*i*th*ub.com/kazhala/dotbare.git $HOME /.oh-my-zsh/custom/plugins/ dotbare
  • 激活~/.zshrc中的插件。

    plugins=( [plugins...] dotbare [plugins...] )

抗原

antigen bundle kazhala/ dotbare 

手动的

  • 克隆存储库(更改〜/ dotbare到您的喜好位置)。

    git clone https://g*i*th*ub.com/kazhala/dotbare.git ~ /. dotbare
  • 将下面放入.zshrc

    dotbare .plugin.zsh\”>

     source ~ /. dotbare / dotbare .plugin.zsh

bash

dotbare带有一个dotbare .plugin.bash ,其中包含gitdotbare的命令行完成函数,请查看有关如何启用它的Wiki。

  • 克隆存储库(更改〜/ dotbare到您的喜好位置)。

    git clone https://g*i*th*ub.com/kazhala/dotbare.git ~ /. dotbare
  • 将下面放入.bashrc.bash_profile

    dotbare .plugin.bash\”>

     source ~ /. dotbare / dotbare .plugin.bash

其他的

  1. 克隆存储库(更改〜/ dotbare到您的喜好位置)。

    git clone https://g*i*th*ub.com/kazhala/dotbare.git ~ /. dotbare
  2. dotbare添加到您的道路上。

    dotbare to your path
    export PATH=$PATH:$HOME/. dotbare \”>

     # This is only an example command for posix shell
    # If you are on fish, use the fish way to add dotbare to your path
    export PATH= $PATH : $HOME /. dotbare

    或者,您可以创建一个指向dotbare可执行文件的别名。

    dotbare / dotbare \”\”>

     alias dotbare = \" $HOME /. dotbare / dotbare \" 

入门

依赖性

出于明显的原因,您将需要系统上的git。而且由于dotbare用bash编写,因此需要您在系统中持bash(您不需要运行bash,只需要在系统中)即可。

所需的依赖性

可选的依赖性

  • 树(找到目录时提供目录树视图)

     # if you are on macos
    brew install tree
  • 蝙蝠或突出显示或coderay或rougify(语法突出显示在预览文件时,否则将使用CAT)

  • Delta或diff-so cass或您选择的任何差异工具(屏幕截图中的奇特git diff预览)

设置

  1. Init Git Bare存储库。

    注意:默认情况下, dotbare finit将在$ home/.cfg中设置一个裸露的存储库,以自定义位置和其他各种设置,结帐自定义

     dotbare finit
  2. 添加您要跟踪的互联网。

    dotbare视为普通的git命令。

    dotbare fadd -f
    # or
    dotbare add [FILENAME]

    # add entire repository like .config directory
    dotbare fadd -d
    # or
    dotbare add [DIRECTORY]\”>

     dotbare fadd -f
    # or
    dotbare add [FILENAME]
    
    # add entire repository like .config directory
    dotbare fadd -d
    # or
    dotbare add [DIRECTORY]
  3. 提交更改并将其推向遥控器。

    dotbare commit -m \”First commit\”
    dotbare remote add origin [URL]
    dotbare push -u origin master\”>

     dotbare commit -m \" First commit \"
    dotbare remote add origin [URL]
    dotbare push -u origin master

迁移

从普通的git裸仓库迁移

  1. 请按照安装步骤安装dotbare

  2. 检查您当前的git裸参考别名。

     # Below is an example alias, check yours for reference
    alias config=/usr/bin/git --git-dir= $HOME /.cfg --work-tree= $HOME
  3. 设置env变量用于dotbare

    dotbare_DIR=\”$HOME/.cfg\”
    export dotbare _TREE=\”$HOME\”\”>

     export dotbare _DIR= \" $HOME /.cfg \"
    export dotbare _TREE= \" $HOME \"
  4. 删除原始别名并使用dotbare

  5. 您可以选择将configdotbare相提并论,以便保持肌肉记忆。

     alias config= dotbare 

从通用的符号设置或GNU Stow迁移

保持当前的设置,但整合了dotbare
  1. 请按照安装步骤安装dotbare

  2. 设置环境变量,以便dotbare知道在哪里寻找git信息。

    dotbare_DIR=\”$HOME/.myworld/.git\”
    # export dotbare _TREE=\”$HOME/.myworld\”
    export dotbare _DIR=<Path to your .git location>
    export dotbare _TREE=<Path to directory which contains all your dotfiles>\”>

     # e.g. I have all my dotfiles stored in folder $HOME/.myworld and symlinks all of them to appropriate location.
    # export dotbare _DIR=\"$HOME/.myworld/.git\"
    # export dotbare _TREE=\"$HOME/.myworld\"
    export dotbare _DIR= < Path to your .git location >
    export dotbare _TREE= < Path to directory which contains all your dotfiles >
  3. 在系统中的任何地方运行dotbare

注意:使用此方法,您在迁移到新系统时不会运行dotbare finit -u [URL] ,您将执行正常的迁移步骤,然后执行上述步骤。

完全迁移

虽然Bare方法很棒且容易,但我建议您将当前的Symlink/GNU存储设置保持与dotbare而不是迁移。如果您对dotbare感到非常满意,只要您的遥控存储库类似于您的家庭持有人的结构(参考我在存储库中的意思),只需在下面运行命令即可。

免责声明:我对此没有进行足够的测试,因为我个人不使用Symlink/GNU Stow设置,而是谨慎迁移。我建议您在Docker中测试此迁移,请参阅test-It-In-In-In-Docker。

dotbare _DIR
dotbare finit -u [URL]\”>

 # dotbare will replace all symlinks with the original file and a bare repository will be created at $ dotbare _DIR
dotbare finit -u [URL]

将dotbare迁移到新系统

  1. 请按照安装步骤安装dotbare

  2. 可选设置ENV变量以自定义dotbare位置(Checkout自定义)。

    dotbare_DIR=\”$HOME/.cfg\”
    export dotbare _TREE=\”$HOME\”\”>

     export dotbare _DIR= \" $HOME /.cfg \"
    export dotbare _TREE= \" $HOME \"
  3. dotbare您的远程URL,让其处理其余的URL。

    dotbare finit -u https://git*hub.c**om/kazhala/dotfiles.git

在Docker中进行测试

当您要进行迁移时,我强烈建议您首先尝试迁移。 dotbare图像基于Alpine Linux。

dotbare:latest
docker container run -it –rm –name dotbare kazhala/ dotbare :latest\”>

docker pull kazhala/ dotbare :latest
docker container run -it --rm --name dotbare kazhala/ dotbare :latest

定制

可以通过修改ENV变量来定制dotbare

注意:此处未介绍FZF的自定义,请查看其Wiki。

dotbare _dir

这是Bare存储库的位置, dotbare将寻找此目录并查询git信息,或者在初始化dotbare时会创建此目录。将其更改为位置或将目录重命名为您的喜好。

如果您使用的是SYMLINK/GNU Stow设置,请将此变量点设置为dotfile目录中的.git文件夹。

 # Default value
export dotbare _DIR= \" $HOME /.cfg \"

dotbare _tree

这是用于Git Bare存储库的工作树,这意味着这是版本控件将进行的地方。除非您的所有配置文件都在$ XDG_CONFIG_HOME之类的内容中,否则我不建议更改此版本。如果您使用的是SYMLINK/GNU Stow设置,请将此变量设置为指向包含所有互联网的文件夹。

 # Default value
export dotbare _TREE= \" $HOME \"

dotbare _backup

该变量用于确定在何处存储文件的备份。它主要由dotbare fbackup使用,该Fbackup将把所有跟踪的杂物备份到此位置。 dotbare finit -u [URL]也使用了它,当存在结帐冲突时, dotbare将自动备份冲突文件到此位置。

dotbare \”\”>

 # Default value
export dotbare _BACKUP= \" ${XDG_DATA_HOME :- $HOME / .local / share} / dotbare \"

编辑

这可能已经在您的env中设置了。 dotbare使用此变量来确定运行dotbare fedit时要使用的编辑器。

 # Default value
export EDITOR= \" vim \"

dotbare _key

此变量设置dotbare中FZF的默认键。您可以在此处查看要设置的键键列表。

dotbare_KEY=\”
–bind=alt-a:toggle-all # toggle all selection
–bind=alt-j:jump # label jump mode, sort of like vim-easymotion
–bind=alt-0:top # set cursor back to top
–bind=alt-s:toggle-sort # toggle sorting
–bind=alt-t:toggle-preview # toggle preview
\”\”>

 # Default value
export dotbare _KEY= \"
  --bind=alt-a:toggle-all       # toggle all selection
  --bind=alt-j:jump             # label jump mode, sort of like vim-easymotion
  --bind=alt-0:top              # set cursor back to top
  --bind=alt-s:toggle-sort      # toggle sorting
  --bind=alt-t:toggle-preview   # toggle preview
\"

dotbare _fzf_default_opts

自定义dotbare的FZF设置。当您希望与普通系统FZF设置不同的FZF行为时,这很有用。

dotbare to be bigger
export dotbare _FZF_DEFAULT_OPTS=\”–preview-window=right:65%\”\”>

 # By default this variable is not set
# More settings checkout fzf man page and their wiki
# Example: if you want your preview window for dotbare to be bigger
export dotbare _FZF_DEFAULT_OPTS= \" --preview-window=right:65% \"

dotbare _preview

此变量确定文件预览的预览命令。默认情况下,预览会自动确定倒下(BAT – >突出显示 – > coderay-> rougify-> cat)。设置此变量以控制预览命令,如果您有特定的喜好或需要额外的标志/设置。参考。

dotbare uses a fall back method to determine which command to use.
# Make sure to have \”{}\” included when customizing it, the preview script substitute \”{}\” for actual filename.
# Example: enable line number for cat command
export dotbare _PREVIEW=\”cat -n {}\”\”>

 # By default this value is not set, dotbare uses a fall back method to determine which command to use.
# Make sure to have \"{}\" included when customizing it, the preview script substitute \"{}\" for actual filename.
# Example: enable line number for cat command
export dotbare _PREVIEW= \" cat -n {} \"

dotbare _diff_pager

该变量控制dotbare flogdotbare fadd等预览中的DIFF输出Pager等。它将读取git config core.pager的值以确定要使用的Pager。如果您对dotbare有特定的偏好或未在git配置中设置全局寻呼机,则可以使用此变量来自定义DIFF预览。

 # By default this value uses fall back (git config core.pager -> cat)
export dotbare _DIFF_PAGER= \" delta --diff-so-fancy --line-numbers \" 

用法

所有用法和命令均记录在Wiki中。

  • 命令
  • 完成
  • 自定义脚本和API
  • 技巧和窍门

更改

最新更改记录在ChangElog中。

测试

dotbare是使用蝙蝠测试的单位。使用路径覆盖方法实现模拟测试。此处记录了这一点,以提高可读性和可扩展性。

并非所有功能都有100%的覆盖范围,并且无法有效测试大量用户互动,如果出现问题,请解散问题。

我已将AWScodeBuild添加到CI/CD中以构建Docker映像。这主要是为了我个人实践。如果您对AWScodeBuild中发生的事情感兴趣,则可以查看我的云形式模板。

贡献

结帐贡献.md,以了解如何为dotbare做出贡献。欢迎PR,我很高兴改善/扩展dotbare的功能。

别忘了离开星星:)

背景

dotbare最初是我个人脚本的一部分,我很难共享这些脚本,并且随着脚本的数量的增加,我觉得更适合为其制作专门的项目。希望您发现它有用并享受它,谢谢!

信用

  • 值得称赞的灵感。
  • 归功于FZF的FZF和FZF.vim的预览脚本。
  • 感谢OMZ升级方法。
  • 归功于这篇文章,以逐步指南,以设置Git Bare Repo。
  • 归功于此视频,以介绍Git Bare Repo。

演示

您可以在这里找到更多演示

下载源码

通过命令行克隆项目:

git clone https://github.com/kazhala/dotbare.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 dotbare https://www.zuozi.net/34133.html

Malware Patch
上一篇: Malware Patch
gdbgui
下一篇: gdbgui
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务