安装和使用GitFS完整示例

安装和使用GitFS完整示例 #

安装GitFS #

Ubuntu安装方法 #

Ubuntu 18.04+

sudo add-apt-repository ppa:presslabs/gitfs
sudo apt-get update
sudo apt-get install gitfs

MacOS安装方法 #

先决条件

brew install gitfs

Debian安装方法 #

包含Raspbian系统

sudo echo "deb http://ppa.launchpad.net/presslabs/gitfs/ubuntu disco main" > /etc/apt/sources.list.d/gitfs.list
sudo echo "deb-src http://ppa.launchpad.net/presslabs/gitfs/ubuntu disco main" >> /etc/apt/sources.list.d/gitfs.list
sudo apt update
sudo apt install gitfs

挂载 #

在挂载之前,您需要一个有效的 git 存储库。您可以使用本地存储库或像 GitHub 这样的 git 服务。

为了将存储库挂载到所需的目录,请使用如下命令:

gitfs http://your.com/repository.git /mount/directory

完整的 github 示例 #

参考以下设置:

  • www-data 用户/组身份运行的 apache2
  • foo_user - github.com账号名
  • boo_password - github账号密码
  • https://github.com/foo_user/my_git_project.git - 远端库URL

挂载前先新建以下两个目录:

  • mkdir /var/lib/gitfs
  • mkdir /var/mount/whatever_dir

现在使用以下命令测试一下运行情况:

gitfs -o log=/var/log/gitfs.log,debug=true,foreground=true,commiter_name=foo_user,commiter_email=[email protected],user=www-data,group=www-data,username=foo_user,password=boo_password https://github.com/foo_user/my_git_project.git /var/mount/whatever_dir

打开另一个终端窗口,并通过命令 tail -f /var/log/gitfs.log 监视日志文件。尝试 dir 中的文件,看看它如何反映在 github 上的存储库中,确保它双向工作。完成后,使用 Ctrl-C 停止 gitfs。

下来,可以通过以下命令让gitFS在后台持续工作。

gitfs -o log=/var/log/gitfs.log,debug=false,foreground=false,log_level=warning,commiter_name=foo_user,commiter_email=[email protected],user=www-data,group=www-data,username=foo_user,password=boo_password https://github.com/foo_user/my_git_project.git /var/mount/whatever_dir

完整选项说明请参考 GitFS参数说明

目录结构 #

current/ – 包含分支的 HEAD 指向的提交的快照。此处所做的任何更改都将自动提交并推送到您已挂载的存储库。

history/ – 包含一系列名称为 dates 的目录。在这些目录中,您将找到每个提交的只读快照,这些快照按该提交的时间和 SHA 分类。每个快照都是只读的。

history 文件夹如下所示:

2014-09-15
    12:33:26-b6758e0c38
    15:52:02-68a2154362
    16:14:52-1d5e4f71ba
    16:16:40-c74a4d8078
    16:17:24-cf3f4fbad8
2014-09-17
    11:19:55-256c692b89
    14:30:25-0ab3d88431
    15:04:21-8e214eb797
2014-09-18
    11:40:06-9e154650f1
    16:05:23-cebf6b7388

内部文件夹是其各自提交的快照。

保持最新状态 #

gitfs 会在给定的时间间隔内自动从存储库中获取最新更改。获取之间的默认延迟为 30 秒,但您可以使用 fetch_delay 参数更改此值。有关更多详细信息,请参阅 GitFS参数说明