成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用Git管理你的每日行程

系統 Linux
Git 是一個少有的能將如此多的現代計算封裝到一個程序之中的應用程序,它可以用作許多其他應用程序的計算引擎。在這個 Git 系列中,我們將分享七種鮮為人知的使用 Git 的方法。

[[276242]]

 像源代碼一樣對待時間并在 Git 的幫助下維護你的日歷。

Git 是一個少有的能將如此多的現代計算封裝到一個程序之中的應用程序,它可以用作許多其他應用程序的計算引擎。雖然它以跟蹤軟件開發中的源代碼更改而聞名,但它還有許多其他用途,可以讓你的生活更輕松、更有條理。在這個 Git 系列中,我們將分享七種鮮為人知的使用 Git 的方法。

今天,我們將使用 Git 來跟蹤你的日歷。

使用 Git 跟蹤你的日程安排

如果時間本身只是可以管理和版本控制的源代碼呢?雖然證明或反駁這種理論可能超出了本文的范圍,但在 Git 的幫助下,你可以將時間視為源代碼并管理你的日程安排。

日歷的衛冕冠軍是 CalDAV 協議,它支撐了如 NextCloud 這樣的流行的開源及閉源的日歷應用程序。CalDAV 沒什么問題(評論者,請注意),但它并不適合所有人,除此之外,它還有一種不同于單一文化的鼓舞人心的東西。

因為我對大量使用 GUI 的 CalDAV 客戶端沒有興趣(如果你正在尋找一個好的終端 CalDAV 查看器,請參閱 khal),我開始研究基于文本的替代方案。基于文本的日歷具有在明文中工作的所有常見好處。它很輕巧,非常便攜,只要它結構化,就很容易解析和美化(無論美麗對你意味著什么)。

最重要的是,它正是 Git 旨在管理的內容。

Org 模式不是一種可怕的方式

如果你沒有對你的明文添加結構,它很快就會陷入一種天馬行空般的混亂,變成惡魔才能懂的符號。幸運的是,有一種用于日歷的標記語法,它包含在令人尊敬的生產力 Emacs 模式 —— Org 模式 中(承認吧,你其實一直想開始使用它)。

許多人沒有意識到 Org 模式的驚人之處在于你不需要知道甚至不需要使用 Emacs來利用 Org 模式建立的約定。如果你使用 Emacs,你會得到許多很棒的功能,但是如果 Emacs 對你來說太難了,那么你可以實現一個基于 Git 的 Org 模式的日歷系統,而不需要安裝 Emacs。

關于 Org 模式你唯一需要知道的部分是它的語法。Org 模式的語法維護成本低、直觀。使用 Org 模式而不是 GUI 日歷應用程序進行日歷記錄的最大區別在于工作流程:你可以創建一個任務列表,然后每天分配一個任務,而不是轉到日歷并查找要安排任務的日期。

組織模式中的列表使用星號(*)作為項目符號。這是我的游戲任務列表:

  1. * Gaming
  2. ** Build Stardrifter character
  3. ** Read Stardrifter rules
  4. ** Stardrifter playtest
  5.  
  6. ** Blue Planet @ Mike's
  7.  
  8. ** Run Rappan Athuk
  9. *** Purchase hard copy
  10. *** Skim Rappan Athuk
  11. *** Build Rappan Athuk maps in maptool
  12. *** Sort Rappan Athuk tokens

如果你熟悉 CommonMark 或 Markdown,你會注意到,Org 模式不是使用空格來創建子任務,而是更明確地使用了其它項目符號。無論你的使用背景和列表是什么,這都是一種構建列表的直觀且簡單的方法,它顯然與 Emacs 沒有內在聯系(盡管使用 Emacs 為你提供了快捷方式,因此你可以快速地重新排列列表)。

要將列表轉換為日歷中的計劃任務或事件,請返回并添加關鍵字 SCHEDULED 和(可選):CATEGORY:

  1. * Gaming
  2. :CATEGORY: Game
  3. ** Build Stardrifter character
  4. SCHEDULED: <2019-03-22 18:00-19:00>
  5. ** Read Stardrifter rules
  6. SCHEDULED: <2019-03-22 19:00-21:00>
  7. ** Stardrifter playtest
  8. SCHEDULED: <2019-03-25 0900-1300>
  9. ** Blue Planet @ Mike's
  10. SCHEDULED: <2019-03-18 18:00-23:00 +1w>
  11.  
  12. and so on...

SCHEDULED 關鍵字將該條目標記為你希望收到通知的事件,并且可選的 :CATEGORY: 關鍵字是一個可供你自己使用的任意標記系統(在 Emacs 中,你可以根據類別對條目使用顏色代碼)。

對于重復事件,你可以使用符號(如+1w)創建每周事件或 +2w 以進行每兩周一次的事件,依此類推。

所有可用于 Org 模式的花哨標記都記錄于文檔,所以不要猶豫,找到更多技巧來讓它滿足你的需求。

放進 Git

如果沒有 Git,你的 Org 模式的日程安排只不過是本地計算機上的文件。這是 21 世紀,所以你至少需要可以在手機上使用你的日歷,即便不是在你所有的個人電腦上。你可以使用 Git 為自己和他人發布日歷。

首先,為 .org 文件創建一個目錄。我將我的存儲在 ~/cal 中。

  1. $ mkdir ~/cal

轉到你的目錄并使其成為 Git 存儲庫:

  1. $ cd cal
  2. $ git init

.org 文件移動到你本地的 Git 存儲庫。在實踐中,我為每個類別維護一個 .org 文件。

  1. $ mv ~/*.org ~/cal
  2. $ ls
  3. Game.org Meal.org Seth.org Work.org

暫存并提交你的文件:

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

創建一個 Git 遠程源

要在任何地方提供日歷,你必須在互聯網上擁有 Git 存儲庫。你的日歷是純文本,因此任何 Git 存儲庫都可以。你可以將日歷放在 GitLab 或任何其他公共 Git 托管服務(甚至是專有服務)上,只要你的主機允許,你甚至可以將該存儲庫標記為私有庫。如果你不想將日歷發布到你無法控制的服務器,則可以自行托管 Git 存儲庫,或者為單個用戶使用裸存儲庫,或者使用 GitoliteGitea 等前端服務。

為了簡單起見,我將假設一個自托管的 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 密鑰面板中。

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

Specifying SSH port in MGit

如果你使用其他應用程序,它可能會使用不同的語法,允許你在特殊字段中提供端口,或刪除 ssh:// 前綴。如果遇到問題,請參閱應用程序文檔。

將存儲庫克隆到手機。

Cloned repositories

很少有 Git 應用程序設置為自動更新存儲庫。有一些應用程序可以用來自動拉取,或者你可以設置 Git 鉤子來推送服務器的更新 —— 但我不會在這里討論這些。目前,在對日歷進行更新后,請務必在 MGit 中手動提取新更改(或者如果在手機上更改了事件,請將更改推送到服務器)。

MGit push/pull settings

移動設備上的日歷

有一些應用程序可以為移動設備上的 Org 模式提供前端。Orgzly 是一個很棒的開源 Android 應用程序,它為 Org 模式的從 Agenda 模式到 TODO 列表的大多數功能提供了一個界面。安裝并啟動它。

從主菜單中,選擇“設置同步存儲庫”,然后選擇包含日歷文件的目錄(即,從服務器克隆的 Git 存儲庫)。

給 Orgzly 一點時間來導入數據,然后使用 Orgzly 的漢堡包菜單選擇日程視圖。

Orgzly's agenda view

在 Orgzly 的“設置提醒”菜單中,你可以選擇在手機上觸發通知的事件類型。你可以獲得 SCHEDULED 任務,DEADLINE 任務或任何分配了事件時間的任何通知。如果你將手機用作任務管理器,那么你將永遠不會錯過 Org 模式和 Orgzly 的活動。

Orgzly notification

Orgzly 不僅僅是一個解析器。你可以編輯和更新事件,甚至標記事件為 DONE

Orgzly to-do list

專為你而設計

關于使用 Org 模式和 Git 的重要一點是,這兩個應用程序都非常靈活,并且你可以自定義它們的工作方式和內容,以便它們能夠適應你的需求。如果本文中的內容是對你如何組織生活或管理每周時間表的冒犯,但你喜歡此提案提供的其他部分,那么請丟棄你不喜歡的部分。如果需要,你可以在 Emacs 中使用 Org 模式,或者你可以將其用作日歷標記。你可以將手機設置為在一天結束時從計算機上拉取 Git 數據,而不是從互聯網上的服務器上,或者你可以將計算機配置為在手機插入時同步日歷,或者你可以每天管理它,就像你把你工作日所需的所有東西都裝到你的手機上一樣。這取決于你,而這是關于 Git、Org 模式和開源的最重要的事情。

 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2020-09-16 06:09:43

開源工具PulpLinux

2022-07-18 07:12:33

開源Linux

2019-07-13 14:21:04

LinuxShell命令

2012-05-10 10:45:40

2022-04-18 16:28:30

Linux

2021-06-15 15:00:08

Cockpit樹莓派Linux

2022-02-25 07:38:35

Linux

2013-05-03 10:04:16

WorkstationvSphere

2011-06-20 10:00:50

布線智能管理

2017-12-22 15:34:49

AI美圖

2018-03-05 10:18:44

Linux密碼密碼管理器

2019-08-05 15:38:07

BitwardenPodman密碼管理器

2011-05-23 09:24:09

程序員BOSS

2022-09-03 15:03:36

AndroidGerrit代碼審核

2019-05-30 10:20:10

Linux環境變量命令

2012-06-06 10:09:31

iPad數據中心

2022-04-16 19:04:49

Linuxpass 命令

2022-06-30 15:48:52

rustupRust

2021-07-27 08:25:41

KubernetesBotKube監控

2020-08-23 10:03:51

SynchronizeJava
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧产日产国产精品v | 国产精品永久久久久 | 日日夜夜天天 | 一级看片 | 国产精品99久 | 久久99久久 | 成人深夜福利在线观看 | 日韩欧美国产成人一区二区 | 奇米超碰 | 欧美在线日韩 | 美女一区二区在线观看 | 日韩在线观看一区二区三区 | 夜夜精品浪潮av一区二区三区 | 色综合一区二区 | 日本精品视频在线 | 成人国产精品视频 | 国产成人叼嘿视频在线观看 | 成人亚洲片| 日韩在线视频免费观看 | 亚洲精品9999| 久久久久亚洲精品 | 午夜精品影院 | 久久综合狠狠综合久久综合88 | 99国产精品视频免费观看一公开 | 久久国产秒 | 伊人网一区 | 欧美精品一区二区三区四区五区 | 在线欧美激情 | 欧美日韩亚洲视频 | 久精品久久 | 久久大陆| 国产精品久久久久久久久久尿 | 国产一区二区三区 | 成人在线视频观看 | 国产视频一区在线 | 久草福利 | 午夜免费av | 久久精品国产一区二区三区不卡 | 亚洲 日本 欧美 中文幕 | 国内精品免费久久久久软件老师 | 久久久久久99 |