gitfs - Arch Linux 中文维基

跳转到内容

# gitfs

来自 Arch Linux 中文维基

翻译状态：

- 本文（或部分内容）译自 Gitfs，最近一次同步于 2024-6-24，若英文版本有所更改，则您可以帮助同步与翻译更改的内容。
- 您可以在 ArchWiki 的对应页面找到本文翻译的原始修订历史。
- 本文可能与英文原文存在出入。

摘自 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>

## 参见

- git worktree

分类：​

- FUSE
- 版本控制系统

gitfs
添加话题