Git 居然可以用來跟女神聊天?

来源:https://www.cnblogs.com/yychuyu/archive/2020/06/19/13165449.html
-Advertisement-
Play Games

Git 是用來做啥的?想必碼農朋友都知道,Git 是版本控制軟體,是軟體開發過程中團隊協作不可或缺的軟體。 但是,作為版本控制軟體的 Git ,能跟聊天工具扯上關係嗎?這二者似乎毫無關係,但腦洞大開的外國朋友 Ephi Gabay 就開發了一個 GIC ,活生生將 Git 改造成了一個聊天工具,有了 ...


Git 是用來做啥的?想必碼農朋友都知道,Git 是版本控制軟體,是軟體開發過程中團隊協作不可或缺的軟體。

但是,作為版本控制軟體的 Git ,能跟聊天工具扯上關係嗎?這二者似乎毫無關係,但腦洞大開的外國朋友 Ephi Gabay 就開發了一個 GIC ,活生生將 Git 改造成了一個聊天工具,有了它你就可以跟女神親密溝通了!

這位哥們是用 Node.js 寫了這麼一個工具,將 Git 改裝成後臺資料庫!更詳細的,他其實是把每一句聊天作為 commit 的內容提交到倉庫里!所以,執行 git log 時,可以看到完整的對話過程。想必當年 Linus 怎麼也不會想到,他寫的 Git 會這麼被人改造!

這個項目的地址如下:

https://github.com/ephigabay/GIC

下麵良許帶你一步步實現這個騷過程。

1. 創建一個倉庫

因為整個聊天的過程,其實就是不停在提交的過程,所以我們需要創建一個倉庫。這個倉庫,肯定不能是你現在工作用的倉庫,否則你之前的工作過程就全玩完了。

倉庫的創建不難吧?這裡簡單演示一下:

mkdir gitchat
cd gitchat
git init
echo "chat logs" > README
git add README
git commit -m 'fist commit'

2. 安裝 GIC

既然 GIC 是基於 Git 的,那麼 Git 肯定是需要安裝的。而且 GIC 是使用 Node.js 編寫的,所以需要安裝 nodejs 。後面我們還需要用到 npm 命令,所以我們還需要安裝一個 npm 。

如果是 Ubuntu 平臺的話,安裝過程可以使用以下命令:

sudo apt-get install git nodejs npm

如果是其它平臺,請參照各自平臺的安裝指導手冊。

然後,我們需要將 GIC 這個項目拷到自己的電腦上,如下:

git clone https://github.com/ephigabay/GIC GIC

等 GIC 完整拷備到電腦上後,我們進入到目錄里並安裝一些依賴文件:

cd GIC
npm install

這個安裝過程可能要花費一些時間,靜靜等待即可。

3. 配置 GIC

對於 GIC 我們只需要配置第 1 步所建的那個倉庫路徑即可,需要編輯 config.js 文件的 gitRepo 欄位:

module.exports = {
    gitRepo: '/home/pi/tests/gitchat/.git', #配置你的聊天倉庫路徑
    messageCheckInterval: 500,
    branchesCheckInterval: 5000
};

在正式開始聊天之前,我們先試一下配置是否正確:

git clone --quiet /home/pi/tests/gitchat/.git > /dev/null

如果上面那步沒報錯的話,說明你所配置的路徑就是正確的。

接下來,我們就可以正式開始和女神聊天了。

4. 使用 Git 開始聊天

開始聊天時,我們可以在 GIC 目錄里使用以下命令啟動聊天:

npm start

之後,你就會看到一個文字版的聊天視窗了。左邊就是聊天內容,右邊是分支。不同的分支就是不同的通道,相當於不同的聊天室,裡面的聊天內容也是不同的。

但是,請註意,如果倉庫里你當前所在的分支是 master 分支,那麼你就不能在這個分支里聊天,要切到其它分支聊天,否則會報錯。

如果要多人聊天的話,每個用戶只需進到 GIC 目錄,然後執行 npm start 命令即可參與聊天。

前面說了,這個聊天的過程其實是依托 git log ,所以我們在 git log 里可以看到完整的聊天記錄:

pi@raspberrypi:~/tests/gitchat $ git log --pretty=format:"%p %cn %s" dev
371a477 evis hao a, wanshange jiu qu!
b6cc4ae alvin yan wo ye hen hao, yao bu yao qu gongyuan zouzou?
7bfea8f evis fine, good, and you?
017d82f alvin yan hello evis, how are you?
 alvin yan init commit

5. 退出聊天

有兩種方法:

  1. 按一下 Esc ,再按 ctrl+C
  2. 執行以下命令:
sudo kill `pgrep npm`

公眾號:良許Linux

有收穫?希望老鐵們來個三連擊,給更多的人看到這篇文章


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Spire.Cloud.SDK for .NET提供了介面PdfSecurityApi可用於加密、解密PDF文檔。本文將通過C#代碼演示具體加密及解密方法。 使用工具: Spire.Cloud.SDK for .NET Visual Studio 必要步驟: 步驟一:dll文件獲取及導入。在程式中通 ...
  • 系列文章 基於 abp vNext 和 .NET Core 開發博客項目 - 使用 abp cli 搭建項目 基於 abp vNext 和 .NET Core 開發博客項目 - 給項目瘦身,讓它跑起來 基於 abp vNext 和 .NET Core 開發博客項目 - 完善與美化,Swagger登場 ...
  • 部署需要用到的工具: 1、xshell用來連結服務器並操作linux服務器,mac用戶可以選擇final shell代替 2、當然是服務器了 安裝步驟:(以下所有操作都通過linux命令完成) 1、mkdir /usr/local/nginx 命令在usr/local目錄創建nginx目錄,ngin ...
  • 用docker-machine創建虛擬主機來對節點主機管理時,我們給定虛擬主機的名稱docker-machine會把該名稱當作主機名,把節點主機的主機名更改為我們指定的名稱;從上面的信息可以看到docker-node01這台主機上有nginx鏡像和n1容器;這說明我們剛纔的操作都是發送給docke... ...
  • 雲:雲和本地是相對的,傳統的應用跑在本地伺服器上,現在流行的應用跑在雲端;IaaS,PaaS,SaaS; 雲原生:Cloud Native, 原生表示土生土長的意思,我們在開始設計應用的時候,就考慮到應用將來是運行在雲環境中的;要充分利用雲資源的優點:彈性和分散式; 雲原生 = 微服務 + DevO ...
  • 花生殼phtunnel嵌入Openwrt 詳細介紹如何將phtunnel封裝成一個openwrt標準組件,並編譯到自己的openwrt固件中。 phtunnel組件製作下載 下載自己的編譯平臺的二進位phtunnel文件是第一步要做的,我們可以到oray的官方github網站進行下載,根據自己的型號 ...
  • yum倉庫管理 yum-config-manager 簡介 # yum 主要功能是更方便的添加/刪除/更新RPM 包,自動解決包的倚賴性問題,便於管理大量系統的更新問題。 # yum 可以同時配置多個資源庫(Repository),簡潔的配置文件(/etc/yum.conf),自動解決增加或刪除 在 ...
  • rpm部分命令解讀 rpm RedHat Package Manger 打包及安裝工具 rpm參數列表 rpm -a rpm -q < rpm package name> 解讀:查詢一個包是否被安裝 rpm -qa rpm -qa <package name> -q 使用詢問模式(query) -a ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...