gitfs

来自 Arch Linux 中文维基

摘自 gitfs:

gitfs 是一个与 git 完全集成的 FUSE 文件系统。你可以在本地挂载远程仓库的分支,随后对文件所做的任何修改都会自动提交到远程仓库。
您可以挂载任何版本库,您所做的所有改动都会自动转化为提交。gitfs 还会通过模拟每次提交的快照,显示您当前工作分支的历史。
gitfs 对于那些需要跟踪所有文件,但又无法将所有文件整理成文件提交的地方非常有用。一个用于 git 仓库的 FUSE 文件系统,带有本地缓存。

安装[编辑 | 编辑源代码]

安装 gitfsAUR

用法[编辑 | 编辑源代码]

例如,通过 gitfs,用户可以将远程 git 仓库挂载为FUSE文件系统:

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

请参阅 options 文档。

问题解决[编辑 | 编辑源代码]

对 /var/lib/gitfs 的写访问权限[编辑 | 编辑源代码]

/var/lib/gitfs 需要存在,但不是自动创建。此外,如果想以普通用户身份挂载 gitfs,请确保该用户可写:

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

对 pygit2 的写访问权限[编辑 | 编辑源代码]

如果以普通用户身份运行,首次运行时 gitfs 会尝试进行自我检查,但会失败。要解决这个问题,请以根用户身份运行一次。您不需要实际挂载任何东西。以 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>

参见[编辑 | 编辑源代码]