用樹(shù)莓派搭建一臺(tái)私人Git服務(wù)器
將 Raspberry Pi 用作Git 服務(wù)器(或“遠(yuǎn)程 Git 存儲(chǔ)庫(kù)存儲(chǔ)系統(tǒng)”)不需要在 Raspberry Pi 上安裝 Git任何其他軟件。它應(yīng)該已經(jīng)安裝,如果沒(méi)有安裝:
sudo apt-get install git

第 1 步:為 SSH 設(shè)置 Raspberry Pi
首先,設(shè)置一個(gè) Raspberry Pi 用於ssh訪問(wèn),並且它位於您的家庭 wifi 網(wǎng)絡(luò)上,這意味著您可以從筆記本電腦登錄它。
完成這些步驟後,您將能夠通過(guò)終端應(yīng)用程序?qū)⑽募鬏數(shù)侥?Raspberry Pi。
第 2 步:使用 USB 存儲(chǔ)設(shè)備進(jìn)行存儲(chǔ)
我們會(huì)將所有 Git 存儲(chǔ)庫(kù)保存到 USB 存儲(chǔ)設(shè)備上,而不是 Raspberry Pi 的 SD 卡上(當(dāng)然,用SD卡也是可以的,但是,不方便,SD的話就屬於是 Raspberry Pi 自己的儲(chǔ)存設(shè)備吧!)。
這將為您的 Git 存儲(chǔ)庫(kù)提供一個(gè)獨(dú)立的存儲(chǔ)器,該存儲(chǔ)器在您的筆記本電腦上很容易讀取。
打開(kāi) 磁盤(pán)工具。 擦除 USB 存儲(chǔ)設(shè)備,格式化為 MS-DOS (FAT) 並調(diào)用卷 GITPI。我還使用標(biāo)籤製造商在背面貼上標(biāo)籤,這樣它就不會(huì)與我的其他 USB 存儲(chǔ)設(shè)備混淆。
我的是16GB,應(yīng)該夠用了。


第 3 步:運(yùn)行最新的軟件包更新

通過(guò) ssh 連接到您的 PI。我的 SD 卡 IP 地址是 10.0.1.64。您的可能會(huì)有所不同——只需相應(yīng)地更改地址即可。
打開(kāi)終端窗口並在命令行上鍵入:
ssh pi@10.0.1.64
運(yùn)行最新的軟件包更新和升級(jí),以確保一切都是最新的。
首先更新:
sudo apt-get upgrade
然後升級(jí):
sudo apt-get update
然後重啟:
sudo reboot
第 4 步:在 Raspberry Pi 上安裝 Git

安裝 git:
sudo apt-get install wget git-core
你會(huì)看到終端輸出。在這種情況下,軟件包已經(jīng)安裝(可能與上一步的更新/升級(jí)有關(guān)),但此時(shí)您會(huì)看到某種成功。
現(xiàn)在,通過(guò)拔下 micro USB 電源線來(lái)關(guān)閉 Raspberry Pi。
第 5 步:永久安裝 USB 存儲(chǔ)器


將格式化的 USB 存儲(chǔ)器插入樹(shù)莓派。然後重新打開(kāi) Pi。
我不確定這是否重要,但我總是將 wi-fi 加密狗留在較低的 USB 端口中,並將上面的用於外部 USB 存儲(chǔ)器/鍵盤(pán)/其他東西。
等待幾秒鐘,然後 ssh 回到 Pi。
ssh pi@10.0.1.64
然後我們輸入什麼;
mkdir usbdrv
我們要設(shè)置的是一個(gè)掛載點(diǎn)——一種始終將此目錄映射到 USB 存儲(chǔ)器的方法。
現(xiàn)在,輸入:
sudo blkid
查看輸出——打開(kāi)?USB 存儲(chǔ)器設(shè)備信息,這很容易識(shí)別,因?yàn)樵诔跏蓟鼤r(shí)將其稱(chēng)為 GITPI。
我的讀?。?/strong>
/dev/sda1: LABEL="GITPI" UUID="6D34-1514" TYPE="vfat"
這應(yīng)該與您的類(lèi)似:/dev/sda1是 USB 存儲(chǔ)器設(shè)備。
現(xiàn)在,我們將編輯所謂的文件系統(tǒng)表,以使 USB 存儲(chǔ)器映射到 usbdrv 目錄
輸入:
sudo nano /etc/fstab
這是棘手的部分。我們將修改fstab文件,以便此設(shè)備映射到usbdrv目錄。
將該行添加到文件末尾(您可以復(fù)制並粘貼該行)
/dev/sda1 /home/pi/usbdrv vfat uid=pi,gid=pi,umask=0022,sync,auto,nosuid,rw,nouser 0 0
重要:這是 1 行,沒(méi)有分成兩行
(the Instructable is doing weird things to the formatting).
它的作用是將 /dev/sda1 設(shè)備——任何?USB 存儲(chǔ)器映射到 usbdrv 目錄。
Cntl-X, Y, 返回保存。
然後重啟:
sudo reboot
第 6 步:測(cè)試 USB 傳輸


在您的 Pi 重新啟動(dòng)後,您將不得不再次 ssh 進(jìn)入它。
然後,在命令行上:
nano usbdrv/test.txt
這將在 usbdrv 目錄中創(chuàng)建一個(gè)文本文件——它實(shí)際上是 USB 存儲(chǔ)器本身,稱(chēng)為 test.txt。將一些文本放入文件中,就像我在這裡的圖片一樣。
cntl-X,Y,回車(chē)保存
在命令行:
ls usbdrv
您會(huì)看到一個(gè)單獨(dú)的文件test.txt。
關(guān)閉樹(shù)莓派。拔出USB存儲(chǔ)器並將其插入筆記本電腦上。
快!您可以在筆記本電腦上閱讀文本文件。刪除文件,拔出USB,將其重新插入您的 Raspberry Pi 並重新啟動(dòng) Pi。
很酷的是 Git 存儲(chǔ)庫(kù)可以由您的計(jì)算機(jī)讀取,並且不依賴(lài)於 Pi。usbdrv將始終安裝到您放入 Pi 的任何 USB 存儲(chǔ)器。如果您有源代碼溢出問(wèn)題,您可以隨時(shí)更換 USB 存儲(chǔ)器。
第 7 步:設(shè)置您的 Pi Git 目錄

這個(gè) Instructable 通常不會(huì)遍歷 Git 存儲(chǔ)庫(kù),所以我假設(shè)您已經(jīng)配置了本地(在您的筆記本電腦上)Git 存儲(chǔ)庫(kù)。
打開(kāi)一個(gè)單獨(dú)的終端窗口並輸入(使用您的源目錄,而不是我的)。
cd /Users/scottkildall/PythonScripts/justdiedbot?git init
現(xiàn)在,在您的 Raspberry Pi 上做類(lèi)似的事情。在第二個(gè)終端窗口中,SSH 回到 Pi。我們將創(chuàng)建一個(gè)名為justdiedbot的目錄並使用 Git 對(duì)其進(jìn)行初始化。再次,替換您的源目錄名稱(chēng),而不是使用我的。
mkdir usbdrv/justdiedbot.git?
cd usbdrv/justdiedbot.git?
git init --bare
這將創(chuàng)建一個(gè)帶有 .git 擴(kuò)展名的新目錄和一個(gè)空的 Git 存儲(chǔ)庫(kù)。
注意:這個(gè) Instructable 的一些讀者報(bào)告說(shuō)你需要在 git init 步驟之前調(diào)用“sudo”,所以如果你有權(quán)限錯(cuò)誤,請(qǐng)輸入:“sudo git init”
第 8 步:Raspberry Pi 上的遠(yuǎn)程存儲(chǔ)庫(kù)
現(xiàn)在,回到您的第一個(gè)終端窗口——與您的本地(筆記本電腦)匹配的窗口。
首先,導(dǎo)航到您的本地目錄,例如:
cd /Users/scottkildall/PythonScripts/justdiedbot
當(dāng)然,您應(yīng)該輸入本地目錄路徑。Finder 的一個(gè)技巧是您可以拖放文件夾以完成路徑,輸入“cd”,然後將文件夾拖到終端窗口中。
將遠(yuǎn)程端口添加到 pi。遠(yuǎn)程本質(zhì)上是一個(gè) 較長(zhǎng)的 URL/路徑的快捷方式。用戶(hù)是 pi@10.0.1.64 — 與我們用於ssh的用戶(hù)相同。
確保用的是你的 Pi 的 IP 地址和你自己的源代碼命名的 .git 目錄代替我的。輸入(再一次,替換您自己的 IP 地址和源目錄)
git remote add pi pi@10.0.1.64:/home/pi/usbdrv/justdiedbot.git
您只需添加一次遠(yuǎn)程端口。從現(xiàn)在開(kāi)始,我們將把這個(gè)遙控器稱(chēng)為 pi。
第 9 步:將代碼推送到 Pi 上

很簡(jiǎn)單,輸入:
git add
git commit -m "initial commit"
git push pi master
這將添加 justdiedbot 目錄中的所有文件,將添加的內(nèi)容與消息一起提交,然後將它們推送到您的 GitPi。
您將看到一些輸出,顯示(希望)成功的結(jié)果。
第10步:完成!看一看

如果您將 USB 存儲(chǔ)器放回筆記本電腦,您將可以訪問(wèn)所有 Git 文件,請(qǐng)參見(jiàn)此處。
對(duì)於項(xiàng)目的未來(lái)源代碼管理,只需重複步驟 9。
要添加更多項(xiàng)目,請(qǐng)重複源代碼步驟 7-9。
這與 GitHub 完全兼容,因?yàn)槟阄磥?lái)可能會(huì)為 GitHub 使用不同的遠(yuǎn)程端口,因此當(dāng)您準(zhǔn)備公開(kāi)時(shí),您可以將您的存儲(chǔ)庫(kù)放在 GitHub 上,並且仍然使用您的 Pi 作為您的家庭備份。