配置屬于自己的Git遠(yuǎn)程倉庫
全球最大的同性交友平臺(tái)(GitHub)是碼農(nóng)們的樂園,今天就分享一下如何搭建一個(gè)私人Git遠(yuǎn)程倉庫;
拋開需求談問題就是耍流氓,我們?yōu)槭裁葱枰约捍罱ㄋ饺说腉it倉庫呢~有GitHub不就夠了嘛,還要這些東西干啥; 很多時(shí)候我們做的事情并不是代表這個(gè)事情有確切的用處,而是為了我們自己更好的學(xué)(zhuang)習(xí)(bi),我做這些事情,不代表有什么用,而代表 我能做 ~~
其實(shí)實(shí)際上還有有作用的
例如:在某公司或者需要保密代碼但是有需要多人協(xié)作的時(shí)候,擁有一個(gè)私人的Git代碼倉庫就會(huì)十分有用處. 好啦,接下來我們就一起進(jìn)入學(xué)(zhuang)習(xí)(bi)之旅吧;
文章一共有3個(gè)階段
1. 在Linux安裝Git
2. 讓Linux的Git能被其他電腦訪問
3. 讓這種感覺變得更爽
1. 在Linux安裝Git
第一步當(dāng)然是需要有一個(gè)Linux系統(tǒng)咯~~,這里怎么裝linux系統(tǒng)和裝什么linux系統(tǒng)我就不說啦.這個(gè)網(wǎng)上教程一搜一大把,簡(jiǎn)單介紹下我用的linux,是window10的WindowsLinuxSubsystem - ubuntu 18.04LTS ;
安裝好linux后,第一件事當(dāng)然是更換源咯.因?yàn)閡buntu官方自帶的源服務(wù)器在國外,然后你懂的~
我們使用
bash $ cp /etc/apt/source.list ./source.list.back $ sudo vim /etc/apt/source.list
將網(wǎng)易云
的鏡像源替換原本的源;
bash deb http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse
然后刷新軟件列表
bash $ sudo apt update
現(xiàn)在就要嘗試一下你的linux中有沒有g(shù)it
bash $ git --version $ git version 2.17.1
如果沒有安裝git的話
bash $ sudo apt install git #安裝git
安裝好之后第一步就完成啦
是不是很簡(jiǎn)單;
是的在linux上我們已經(jīng)完成了 1/3 的工作;
2. 讓Linux的Git能被其他電腦訪問
眾所周知,git是一個(gè)分布式版本管理軟件,也就是說,任何一個(gè)安裝的git的電腦既可以是一個(gè)客戶端也是一個(gè)服務(wù)端,既可以是我們?nèi)粘0岽u的工作區(qū)間,也可以是別人來搬磚的遠(yuǎn)程倉庫;
好的現(xiàn)在有一個(gè)問題,那就是如何讓別人訪問到你的git倉庫(也就是訪問你的文件)
答案當(dāng)然是ssh
啦,我們只需要開啟ssh 服務(wù)器服務(wù),就可以遠(yuǎn)程訪問你的linux系統(tǒng).
這里WLS(WindowsLinuxSubsystem)使用的是本機(jī)的端口,我們默認(rèn)是打開ssh port 22端口;
至于這個(gè)ssh怎么打開,我也不贅述了,網(wǎng)上一搜也一大把;
打開ssh后我們就可以吧linux的窗口最小化,然后使用自己電腦的cmd或者powerShell對(duì)linux進(jìn)行控制;(局域網(wǎng))
這個(gè)時(shí)候我們就可以 進(jìn)行我們的git操作,因?yàn)槲覀兪窍M覀円幸粋€(gè)git的遠(yuǎn)程倉庫,因此為了不污染我們這擁有sudo 權(quán)限的賬號(hào)用戶,我們就新建一個(gè)用戶 新建用戶很簡(jiǎn)單;
然后根據(jù)步驟一步一步搞就行,我姑且新建了一個(gè)用戶叫做git;
- 新建用戶
sudo adduser git #這里的git是你的用戶名 $ sudo adduser git Adding user `git' Adding new group `git' (1002) Adding new user `git' (1002) with group `git' Creating home directory `/home/git' Copying files from `/etc/skel' Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for git Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] y $
- 嘗試初始化倉庫
為什么我們要初始化.git后綴的倉庫呢?因?yàn)槲覀冎幌胱屗鰝}庫而不是一個(gè)可以操作的工作區(qū)間,實(shí)際上建文件夾也是可以的~$ sudo su git $ cd ~ $ git init --bare test.git Initialized empty Git repository in /home/git/test.git/
- 本地git倉庫添加 remote
然后接下來的操作,什么git remote add kimlocal git@127.0.0.1:/home/git/test.git
pull
/push
就都和使用github上的遠(yuǎn)程倉庫一樣啦,但是這樣的話也都是需要先在你的git賬戶上新建一個(gè)倉庫,就是:# linux服務(wù)器(遠(yuǎn)程git倉庫端) git init --bare [repositories_name].git # 本地git bash git remote add [remote_name] git@<url>:/home/git/[repositories_name].git git push [remote_name]
以上的設(shè)置都是在局域網(wǎng)內(nèi)實(shí)現(xiàn)的;
那我們?nèi)绾尾趴梢匀澜缛魏我粋€(gè)有網(wǎng)絡(luò)的角落都可以連接上你的倉庫呢~
- 有兩種方案
- 購買一個(gè)云服務(wù)器,在云服務(wù)器上作上述所有操作
- 使用網(wǎng)絡(luò)穿透軟件穿透
- 如果你的設(shè)備連接在一個(gè)有公網(wǎng)IP的路由器下且你可以設(shè)置路由器,綁定端口映射即可;
三種方式經(jīng)濟(jì)上需求依次遞減,第三種時(shí)免費(fèi)的,但是在城市的我們基本可遇不可求,各位按需取用;只要付錢,那么就都會(huì)有詳細(xì)的資料的幫助,nat123最適合屌絲使用可以嘗試一哈;8塊錢用終生;sunny-Ngrok 免費(fèi)用終身,但是個(gè)人開發(fā)者,有時(shí)候會(huì)有點(diǎn)不穩(wěn)定;
- 安全性
一旦將你的個(gè)人電腦暴露到公網(wǎng)當(dāng)中那么就不得不考慮安全的問題
,而且如果你真正在使用你自己搭建的遠(yuǎn)程倉庫的時(shí)候會(huì)發(fā)現(xiàn)你每次操作都需要輸入密碼,不僅很繁瑣,而且在某些特定的時(shí)候還會(huì)面臨選擇問題;
至此,我們已經(jīng)可以在世界的任何一個(gè)角落訪問你的遠(yuǎn)程倉庫了,但是還有很多繁瑣和不安全的隱患在;那么這個(gè)時(shí)候請(qǐng)參考 git的進(jìn)階配置