久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

linux中怎么用Git管理每日行程

共計(jì) 4515 個(gè)字符,預(yù)計(jì)需要花費(fèi) 12 分鐘才能閱讀完成。

自動(dòng)寫代碼機(jī)器人,免費(fèi)開通

這篇文章給大家分享的是有關(guān) linux 中怎么用 Git 管理每日行程的內(nèi)容。丸趣 TV 小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨丸趣 TV 小編過來看看吧。

使用 Git 跟蹤你的日程安排

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

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

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

最重要的是,它正是 Git 旨在管理的內(nèi)容。

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

如果你沒有對(duì)你的明文添加結(jié)構(gòu),它很快就會(huì)陷入一種天馬行空般的混亂,變成惡魔才能懂的符號(hào)。幸運(yùn)的是,有一種用于日歷的標(biāo)記語法,它包含在令人尊敬的生產(chǎn)力 Emacs 模式 mdash; mdash; Org 模式 中(承認(rèn)吧,你其實(shí)一直想開始使用它)。

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

關(guān)于 Org 模式你唯一需要知道的部分是它的語法。Org 模式的語法維護(hù)成本低、直觀。使用 Org 模式而不是 GUI 日歷應(yīng)用程序進(jìn)行日歷記錄的最大區(qū)別在于工作流程:你可以創(chuàng)建一個(gè)任務(wù)列表,然后每天分配一個(gè)任務(wù),而不是轉(zhuǎn)到日歷并查找要安排任務(wù)的日期。

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

* Gaming** Build Stardrifter character** Read Stardrifter rules** Stardrifter playtest ** Blue Planet @ Mike s ** Run Rappan Athuk*** Purchase hard copy*** Skim Rappan Athuk*** Build Rappan Athuk maps in maptool*** Sort Rappan Athuk tokens

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

要將列表轉(zhuǎn)換為日歷中的計(jì)劃任務(wù)或事件,請(qǐng)返回并添加關(guān)鍵字 SCHEDULED 和(可選):CATEGORY:。

* Gaming:CATEGORY: Game** Build Stardrifter characterSCHEDULED:  2019-03-22 18:00-19:00 ** Read Stardrifter rulesSCHEDULED:  2019-03-22 19:00-21:00 ** Stardrifter playtestSCHEDULED:  2019-03-25 0900-1300 ** Blue Planet @ Mike sSCHEDULED:  2019-03-18 18:00-23:00 +1w  and so on...

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

對(duì)于重復(fù)事件,你可以使用符號(hào)(如 +1w)創(chuàng)建每周事件或 +2w 以進(jìn)行每兩周一次的事件,依此類推。

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

放進(jìn) Git

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

首先,為 .org 文件創(chuàng)建一個(gè)目錄。我將我的存儲(chǔ)在 ~/cal 中。

$ mkdir ~/cal

轉(zhuǎn)到你的目錄并使其成為 Git 存儲(chǔ)庫:

$ cd cal$ git init

將 .org 文件移動(dòng)到你本地的 Git 存儲(chǔ)庫。在實(shí)踐中,我為每個(gè)類別維護(hù)一個(gè) .org 文件。

$ mv ~/*.org ~/cal$ lsGame.org Meal.org Seth.org Work.org

暫存并提交你的文件:

$ git add *.org$ git commit -m  cal init

創(chuàng)建一個(gè) Git 遠(yuǎn)程源

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

為了簡單起見,我將假設(shè)一個(gè)自托管的 Git 裸存儲(chǔ)庫。你可以使用 Git 命令在任何具有 SSH 訪問權(quán)限的服務(wù)器上創(chuàng)建一個(gè)遠(yuǎn)程裸存儲(chǔ)庫:

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

這個(gè)裸存儲(chǔ)庫可以作為你日歷在互聯(lián)網(wǎng)上的家。

將其設(shè)置為本地 Git 存儲(chǔ)庫(在你的計(jì)算機(jī)上,而不是你的服務(wù)器上)的遠(yuǎn)程源:

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

然后推送你的日歷到該服務(wù)器:

$ git push -u origin HEAD

將你的日歷放在 Git 存儲(chǔ)庫中,就可以在任何運(yùn)行 Git 的設(shè)備上使用它。這意味著你可以對(duì)計(jì)劃進(jìn)行更新和更改,并將更改推送到上游,以便在任何地方進(jìn)行更新。

我使用這種方法使我的日歷在我的工作筆記本電腦和家庭工作站之間保持同步。由于我每天大部分時(shí)間都在使用 Emacs,因此能夠在 Emacs   中查看和編輯我的日歷是一個(gè)很大的便利。對(duì)于大多數(shù)使用移動(dòng)設(shè)備的人來說也是如此,因此下一步是在移動(dòng)設(shè)備上設(shè)置 Org 模式的日歷系統(tǒng)。

移動(dòng)設(shè)備上的 Git

由于你的日歷數(shù)據(jù)是純文本的,嚴(yán)格來說,你可以在任何可以讀取文本文件的設(shè)備上“使用”它。這是這個(gè)系統(tǒng)之美的一部分;你永遠(yuǎn)不會(huì)缺少原始數(shù)據(jù)。但是,要按照你希望的現(xiàn)代日歷的工作方式將日歷集成到移動(dòng)設(shè)備上,你需要兩個(gè)組件:移動(dòng)設(shè)備上的  Git 客戶端和 Org 模式查看器。

移動(dòng)設(shè)備上的 Git 客戶端

MGit 是 Android 上的優(yōu)秀 Git 客戶端。同樣,iOS 也有 Git 客戶端。

一旦安裝了 MGit(或類似的 Git 客戶端),你必須克隆日歷存儲(chǔ)庫,以便在你的手機(jī)上有副本。要從移動(dòng)設(shè)備訪問服務(wù)器,必須設(shè)置 SSH 密鑰進(jìn)行身份驗(yàn)證。MGit 可以為你生成和存儲(chǔ)密鑰,你必須將其添加到服務(wù)器的 ~/.ssh/authorized_keys 文件或托管的 Git 的帳戶設(shè)置中的 SSH 密鑰中。

你必須手動(dòng)執(zhí)行此操作。MGit 沒有登錄你的服務(wù)器或托管的 Git 帳戶的界面。如果你不這樣做,你的移動(dòng)設(shè)備將無法訪問你的服務(wù)器以訪問你的日歷數(shù)據(jù)。

我是通過將我在 MGit 中生成的密鑰文件通過 KDE Connect 復(fù)制到我的筆記本電腦來實(shí)現(xiàn)的(但你可以通過藍(lán)牙、SD 卡讀卡器或 USB 電纜進(jìn)行相同操作,具體取決于你訪問手機(jī)上的數(shù)據(jù)的首選方法)。我用這個(gè)命令將密鑰(一個(gè)名為 calkey 的文件)復(fù)制到我的服務(wù)器:

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

你可能有不同的方法,但如果你曾經(jīng)將服務(wù)器設(shè)置為無密碼登錄,這是完全相同的過程。如果你使用的是 GitLab 等托管的 Git 服務(wù),則必須將密鑰文件的內(nèi)容復(fù)制并粘貼到用戶帳戶的 SSH 密鑰面板中。

Adding key file data to GitLab

完成后,你的移動(dòng)設(shè)備可以向你的服務(wù)器授權(quán),但仍需要知道在哪里查找你的日歷數(shù)據(jù)。不同的應(yīng)用程序可能使用不同的表示法,但 MGit 使用普通的舊式 Git-over-SSH。這意味著如果你使用的是非標(biāo)準(zhǔn) SSH 端口,則必須指定要使用的 SSH 端口:

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

Specifying SSH port in MGit

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

將存儲(chǔ)庫克隆到手機(jī)。

Cloned repositories

很少有 Git 應(yīng)用程序設(shè)置為自動(dòng)更新存儲(chǔ)庫。有一些應(yīng)用程序可以用來自動(dòng)拉取,或者你可以設(shè)置 Git 鉤子來推送服務(wù)器的更新 mdash; mdash;   但我不會(huì)在這里討論這些。目前,在對(duì)日歷進(jìn)行更新后,請(qǐng)務(wù)必在 MGit 中手動(dòng)提取新更改(或者如果在手機(jī)上更改了事件,請(qǐng)將更改推送到服務(wù)器)。

MGit push/pull settings

移動(dòng)設(shè)備上的日歷

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

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

給 Orgzly 一點(diǎn)時(shí)間來導(dǎo)入數(shù)據(jù),然后使用 Orgzly 的漢堡包菜單選擇日程視圖。

Orgzly s agenda view

在 Orgzly 的“設(shè)置提醒”菜單中,你可以選擇在手機(jī)上觸發(fā)通知的事件類型。你可以獲得 SCHEDULED 任務(wù),DEADLINE 任務(wù)或任何分配了事件時(shí)間的任何通知。如果你將手機(jī)用作任務(wù)管理器,那么你將永遠(yuǎn)不會(huì)錯(cuò)過 Org 模式和 Orgzly 的活動(dòng)。

Orgzly notification

Orgzly 不僅僅是一個(gè)解析器。你可以編輯和更新事件,甚至標(biāo)記事件為 DONE。

感謝各位的閱讀!關(guān)于“l(fā)inux 中怎么用 Git 管理每日行程”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向 AI 問一下細(xì)節(jié)

丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-12-07發(fā)表,共計(jì)4515字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 泾源县| 荃湾区| 财经| 永泰县| 岳阳县| 蒲城县| 大丰市| 宿迁市| 镇宁| 揭东县| 苍南县| 米林县| 静宁县| 凌海市| 柳河县| 昭通市| 榆中县| 深州市| 玛多县| 二连浩特市| 绵竹市| 夏津县| 波密县| 济阳县| 恩施市| 龙口市| 沙坪坝区| 旅游| 南木林县| 上虞市| 武清区| 从化市| 特克斯县| 嘉祥县| 阳城县| 通山县| 巴楚县| 凤庆县| 永康市| 禹州市| 涟水县|