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. 退出聊天
有兩種方法:
- 按一下 Esc ,再按 ctrl+C
- 執行以下命令:
sudo kill `pgrep npm`
公眾號:良許Linux