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

參見