设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

用Git管理你的每日行程(2)

发布时间:2019-09-09 16:16 所属栏目:117 来源:Seth Kenlon
导读:暂存并提交你的文件: $ git add *.org $ git commit -m 'cal init' 创建一个 Git 远程源 要在任何地方提供日历,你必须在互联网上拥有 Git 存储库。你的日历是纯文本,因此任何 Git 存储库都可以。你可以将日历放

暂存并提交你的文件:

  1. $ git add *.org
  2. $ git commit -m 'cal init'

创建一个 Git 远程源

要在任何地方提供日历,你必须在互联网上拥有 Git 存储库。你的日历是纯文本,因此任何 Git 存储库都可以。你可以将日历放在 GitLab 或任何其他公共 Git 托管服务(甚至是专有服务)上,只要你的主机允许,你甚至可以将该存储库标记为私有库。如果你不想将日历发布到你无法控制的服务器,则可以自行托管 Git 存储库,或者为单个用户使用裸存储库,或者使用 Gitolite 或 Gitea 等前端服务。

为了简单起见,我将假设一个自托管的 Git 裸存储库。你可以使用 Git 命令在任何具有 SSH 访问权限的服务器上创建一个远程裸存储库:

  1. $ ssh -p 22122 [seth@example.com][14]
  2. [remote]$ mkdir cal.git
  3. [remote]$ cd cal.git
  4. [remote]$ git init --bare
  5. [remote]$ exit

这个裸存储库可以作为你日历在互联网上的家。

将其设置为本地 Git 存储库(在你的计算机上,而不是你的服务器上)的远程源:

  1. $ git remote add origin seth@example.com:/home/seth/cal.git

然后推送你的日历到该服务器:

  1. $ git push -u origin HEAD

将你的日历放在 Git 存储库中,就可以在任何运行 Git 的设备上使用它。这意味着你可以对计划进行更新和更改,并将更改推送到上游,以便在任何地方进行更新。

我使用这种方法使我的日历在我的工作笔记本电脑和家庭工作站之间保持同步。由于我每天大部分时间都在使用 Emacs,因此能够在 Emacs 中查看和编辑我的日历是一个很大的便利。对于大多数使用移动设备的人来说也是如此,因此下一步是在移动设备上设置 Org 模式的日历系统。

移动设备上的 Git

由于你的日历数据是纯文本的,严格来说,你可以在任何可以读取文本文件的设备上“使用”它。这是这个系统之美的一部分;你永远不会缺少原始数据。但是,要按照你希望的现代日历的工作方式将日历集成到移动设备上,你需要两个组件:移动设备上的 Git 客户端和 Org 模式查看器。

移动设备上的 Git 客户端

MGit 是 Android 上的优秀 Git 客户端。同样,iOS 也有 Git 客户端。

一旦安装了 MGit(或类似的 Git 客户端),你必须克隆日历存储库,以便在你的手机上有副本。要从移动设备访问服务器,必须设置 SSH 密钥进行身份验证。MGit 可以为你生成和存储密钥,你必须将其添加到服务器的 ~/.ssh/authorized_keys 文件或托管的 Git 的帐户设置中的 SSH 密钥中。

你必须手动执行此操作。MGit 没有登录你的服务器或托管的 Git 帐户的界面。如果你不这样做,你的移动设备将无法访问你的服务器以访问你的日历数据。

我是通过将我在 MGit 中生成的密钥文件通过 KDE Connect 复制到我的笔记本电脑来实现的(但你可以通过蓝牙、SD 卡读卡器或 USB 电缆进行相同操作,具体取决于你访问手机上的数据的首选方法)。 我用这个命令将密钥(一个名为 calkey 的文件)复制到我的服务器:

  1. $ cat calkey | ssh seth@example.com "cat >> /home/seth/.ssh/authorized_keys"

你可能有不同的方法,但如果你曾经将服务器设置为无密码登录,这是完全相同的过程。如果你使用的是 GitLab 等托管的 Git 服务,则必须将密钥文件的内容复制并粘贴到用户帐户的 SSH 密钥面板中。

用Git管理你的每日行程

Adding key file data to GitLab

完成后,你的移动设备可以向你的服务器授权,但仍需要知道在哪里查找你的日历数据。不同的应用程序可能使用不同的表示法,但 MGit 使用普通的旧式 Git-over-SSH。这意味着如果你使用的是非标准 SSH 端口,则必须指定要使用的 SSH 端口:

  1. $ git clone ssh://seth@example.com:22122//home/seth/git/cal.git

用Git管理你的每日行程

Specifying SSH port in MGit

如果你使用其他应用程序,它可能会使用不同的语法,允许你在特殊字段中提供端口,或删除 ssh:// 前缀。如果遇到问题,请参阅应用程序文档。

将存储库克隆到手机。

用Git管理你的每日行程

Cloned repositories

很少有 Git 应用程序设置为自动更新存储库。有一些应用程序可以用来自动拉取,或者你可以设置 Git 钩子来推送服务器的更新 —— 但我不会在这里讨论这些。目前,在对日历进行更新后,请务必在 MGit 中手动提取新更改(或者如果在手机上更改了事件,请将更改推送到服务器)。

用Git管理你的每日行程

MGit push/pull settings

移动设备上的日历

有一些应用程序可以为移动设备上的 Org 模式提供前端。Orgzly 是一个很棒的开源 Android 应用程序,它为 Org 模式的从 Agenda 模式到 TODO 列表的大多数功能提供了一个界面。安装并启动它。

从主菜单中,选择“设置同步存储库”,然后选择包含日历文件的目录(即,从服务器克隆的 Git 存储库)。

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读