gitfs

来自 ArchWiki

来自 gitfs

gitfs 是一个与 git 完全集成的 FUSE 文件系统。您可以将远程仓库的分支挂载到本地,之后对文件所做的任何更改都将自动提交到远程仓库。
您可以挂载任何仓库,并且您所做的所有更改都将自动转换为提交。gitfs 还会通过模拟每次提交的快照来展示您当前正在处理的分支的历史记录。
在您想要跟踪所有文件,但同时又无法自己将所有内容组织成提交的情况下,gitfs 非常有用。一个用于 git 仓库的 FUSE 文件系统,带有本地缓存。

安装

安装 gitfsAUR

用法

gitfs 允许用户将远程 git 仓库挂载为 FUSE 文件系统,例如

$ gitfs https://example.com/repository.git /mount/directory

请参阅其文档以获取 选项

故障排除

写入 /var/lib/gitfs 的权限

/var/lib/gitfs 需要存在,并且不会自动创建。此外,如果您想以普通用户身份挂载 gitfs,请确保使其对该用户可写

# mkdir /var/lib/gitfs
# chown username:users /var/lib/gitfs

写入 pygit2 的权限

首次运行时,gitfs 尝试进行一些自我检查,如果以普通用户身份运行,则会失败。为了解决这个问题,请以 root 用户身份运行一次。您无需实际挂载任何内容。只需以 root 用户身份显示帮助消息就足够了

# gitfs -h

使用 ssh 密钥的选项

Gitfs(以及它所依赖的 pygit2)似乎正在进行大量开发,选项可能会更改。尽管 官方文档 指出可以使用 -o key= 选项来更改密钥,但实际上来自 AUR 的 0.4.1-1 版本需要使用 -o ssh_key=。请注意,如果密钥受密码保护,gitfs 不会要求输入密码。它只会返回错误

_pygit2.GitError: Failed to authenticate SSH session: Callback returned error

建议为此创建一个单独的密钥,方法是执行

ssh-keygen
/home/user/.ssh/gitfs_rsa
<empty passphrase>
<empty passphrase again>

参见