摘自 gitfs:
- gitfs 是一個與 git 完全集成的 FUSE 文件系統。你可以在本地掛載遠程倉庫的分支,隨後對文件所做的任何修改都會自動提交到遠程倉庫。
- 您可以掛載任何版本庫,您所做的所有改動都會自動轉化為提交。gitfs 還會通過模擬每次提交的快照,顯示您當前工作分支的歷史。
- gitfs 對於那些需要跟蹤所有文件,但又無法將所有文件整理成文件提交的地方非常有用。一個用於 git 倉庫的 FUSE 文件系統,帶有本地緩存。
安裝
用法
例如,通過 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>