① 在linux下搭建Git伺服器
眾所周知,版本系統在開發環境中是必不可少的,但是我們可以把代碼免費的託管到GitHub上,如果我們不原意公開項目的源代碼,公司又不想付費使用,那麼我們可以自己搭建一台Git伺服器,可以用Gitosis來管理公鑰,還是比較方便的。
搭建環境:
伺服器 CentOS6.6 + git(version 1.8.3.1)
客戶端 Windows10 + git(version 2.11.1.windows.1)
1. 安裝Git相關軟體
Linux是伺服器端系統,Windows作為客戶端系統,分別安裝Git
安裝客戶端:
下載 Git for Windows,地址:https://git-for-windows.github.io/
安裝完之後,可以使用Git Bash作為命令行客戶端。
安裝Gitosis
出現下面的信息表示安裝成功了
2. 伺服器端創建git用戶來管理Git服務
3. 配置公鑰
在Windows上配置管理者,git伺服器需要一些管理者,通過上傳開發者機器的公鑰到伺服器,添加成為git伺服器的管理者,打開git命令行
4. 配置gitosis
使用git用戶並初始化gitosis
在Windows上機器上clone gitosis-admin到管理者主機
gitosis.conf: git伺服器配置文件
keydir: 存放客戶端公鑰
配置 gitosis.conf 文件
在Windows管理者機器上創建本地test倉庫,並上傳到git服務端
提交到遠程伺服器
服務端會自動創建test倉庫
5.添加其他git用戶開發者
由於公司開發團隊人數不斷增多,手動添加開發者私鑰到/home/git/.ssh/authorized_keys比較麻煩,通過上面的Windows機器的管理者統一收集其他開發者的私鑰id_rsa.pub文件,然後傳到伺服器上,配置好後,用戶即獲得項目許可權,可以從遠程倉庫拉取和推送項目,達到共同開發項目。
推送完成後,新加進來的開發者就可以進行項目的開發了,後續增加人員可以這樣添加進來,開發者直接把倉庫clone下來就可以了。
② 區域網內創建git伺服器的簡單方法
當資源有限,但是項目同時需要幾個人協同開發,我們就需要配置一個簡單的區域網內的git伺服器,方便協同開發。
首先我們新建遠端的git目錄,目錄名和本地倉庫名一致,並且在目錄下運行:
git init --bare
一個空的git倉庫就建立好了。然後我們需要把本地的倉庫和遠端的關聯起來。具體做法是,在本地git倉庫的目錄下執行:
git remote add origin ssh://用戶名@ip/倉庫路徑
比如:git remote add origin ssh://android@192.168.31.72/home/android/projects/gitserver/demoproject/。完成後,本地的提交,就可以push到遠端啦。比如:
git push origin master
就可以把本地的master推送到遠端。協同開發的同事可以通過如下命令獲取遠端的倉庫
git clone ssh://[email protected]/home/android/projects/gitserver/demoproject/
是不是很簡單呢
ps:實際使用過程中發現了一個問題,即本機的ip地址不是靜態的。如何解決這個問題呢?可以在每次ip改變以後,重置倉庫的origin url:
git remote set-url origin {url}
③ 如何在雲伺服器windows上搭建git
Git沒有客戶端伺服器端的概念,但是要共享Git倉庫,就需要用到SSH協議(FTP , HTTPS , SFTP等協議也能實現Git共享,此文檔不討論),但是SSH有客戶端伺服器端,所以在windows下的開發要把自己的Git倉庫共享出去的話,就必 須做SSH伺服器。
一、安裝GIT
Windows下使用msysgit,
本文使用Git-1.7.8-preview20111206.exe 安裝要點步驟
安裝完成後,可以使用Git bash在命令行模式下操作git
二、安裝CopSSH
安裝CopSSH之前先確保防火牆開啟了SSH埠,這個雖然不影響CopSSH的安裝,但是影響SSH訪問,所以寫在前面。
CopSSH是windows下的SSH伺服器軟體,下載地址之,本文使用的是Copssh_4.1.0_Installer.exe,
安裝完成後,到控制面板中新建一個管理員賬戶root,用這個賬戶來共享SSH。然後你在賬戶管理中會看到之前的SvcCOPSSH賬戶。
將root用戶添加到CopSSH用戶中,為簡單操作,允許使用密碼認證方式
若是不允許密碼認證,則需要使用公鑰密鑰方式認證,
三、CopSSH中使用GIT
現在已經安裝GIT和CopSSH,接下來需要做的就是讓CopSSH可以使用GIT的命令,這樣不僅能夠遠程SSH管理GIT伺服器,而且可以將GIT倉庫通過SSH共享。具體的操作方法是將GIT的某些命令程序和動態鏈接庫復制到CopSSH安裝目錄下即可。
l 將$ Git\libexec\git-core目錄下的git.exe , git-receive-pack.exe , git-upload-archive.exe , git-upload-pack.exe復制到$ICW\bin目錄下
l 將$Git\bin目錄下的libiconv-2.dll復制到$ICW\bin目錄下
重啟CopSSH即可
④ 利用樹莓派搭建個人伺服器
上一篇樹莓派也跑Docker和.NET Core有對樹莓派做簡單的介紹。包括系統的燒錄、基本的設置、docker的安裝、.net core的運行等。有人問我是不是一定要跑docker,答案肯定是否定的。我之所以用docker,完全是因為它的便利(帶環境)、對系統無污染和方便系統資源的查看和控制。本篇文章繼續分享下我對樹莓派的使用。
我說在樹莓派上跑mysql你還不信。
有了.net core、mysql和redis,如果再能跑一個git伺服器那不就吊炸天了。是的,樹莓派安裝gogs毫無壓力。有了自己的代碼管理伺服器,再也不會因為GitHub訪問慢而煩惱了,也不會因為某Git的廣告而不爽了。
其中1080是瀏覽器訪問埠,你也可以映射到80。122是ssh提交代碼的埠。
注意:gogs需要依賴於mysql,第一次啟動會引導你填入資料庫相關信息。後面如果重啟了樹莓派,記得先啟動mysql,再啟動gogs,不然不能正常訪問。
上面有了應用,有了資料庫,還有了代碼管理伺服器,可我們樹莓派總歸是在一個區域網內。離開了這個網路上面說的那些功能好像就沒什麼用了。那我們有沒有辦法讓我們的樹莓派變成真正的伺服器呢,答案是肯定的。我相信大家剛接觸編程的時候,都幻想過自己寫的網站能直接給別人訪問。那個時候應該大多折騰過花生殼什麼的,那就是個內網穿透的技術。只是別人提供了免費的伺服器中轉了下,速度也是慢得感人。
今天我們來自己利用frp軟體實現內外穿透,當然還是需要伺服器的 (沒有伺服器的同學,可以先借朋友的玩玩) 。
因為我們是樹莓派,可以下載最新版 frp_0.29.0_linux_arm.tar.gz(裝客戶端)和 frp_0.29.0_windows_amd64.zip(windows伺服器)或者frp_0.29.0_linux_amd64.tar.gz(linux伺服器)
首先把frp_0.29.0_linux_amd64.tar.gz上傳到伺服器,解壓,跳轉到目錄里,編輯frps.ini
然後運行./frps運行,啟動服務端監聽。
把frp_0.29.0_linux_arm.tar.gz上傳到樹莓派,解壓,跳轉到目錄里,編輯frpc.ini
然後運行啟動./frpc
然後就可以外網訪問了,www.伺服器ip:8001 就可以訪問git伺服器了。
注意:如果是雲伺服器記得把對應的8000、7000、8001埠加入到安全組裡面,不然會被攔截掉。
可以做物聯網數據的邊緣計算啊,如設備的數據採集、監控預警、數據分析等等。再買點感測器做個簡陋版「小愛同學」也不是很難,甚至遙控 汽車 玩具什麼的,能想的到的也沒什麼是做不到的。
24小時不關機,零噪音,一直開心的運行著。
⑤ 騰訊雲上怎麼安裝git伺服器
搭建Git伺服器需要准備一台運行Linux的機器,強烈推薦用Ubuntu或Debian,這樣,通過幾條簡單的apt命令就可以完成安裝。
假設你已經有sudo許可權的用戶賬號,下面,正式開始安裝。
第一步,安裝git:
$ sudo apt-get install git
第二步,創建一個git用戶,用來運行git服務:
$ sudo adser git
第三步,創建證書登錄:
收集所有需要登錄的用戶的公鑰,就是他們自己的id_rsa.pub文件,把所有公鑰導入到/home/git/.ssh/authorized_keys文件里,一行一個。
第四步,初始化Git倉庫:
先選定一個目錄作為Git倉庫,假定是/srv/sample.git,在/srv目錄下輸入命令:
$ sudo git init --bare sample.git
Git就會創建一個裸倉庫,裸倉庫沒有工作區,因為伺服器上的Git倉庫純粹是為了共享,所以不讓用戶直接登錄到伺服器上去改工作區,並且伺服器上的Git倉庫通常都以.git結尾。然後,把owner改為git:
$ sudo chown -R git:git sample.git
第五步,禁用shell登錄:
出於安全考慮,第二步創建的git用戶不允許登錄shell,這可以通過編輯/etc/passwd文件完成。找到類似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
改為:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
這樣,git用戶可以正常通過ssh使用git,但無法登錄shell,因為我們為git用戶指定的git-shell每次一登錄就自動退出。
第六步,克隆遠程倉庫:
現在,可以通過git clone命令克隆遠程倉庫了,在各自的電腦上運行:
$ git clone git@server:/srv/sample.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.
我現在使用的是小鳥雲,他們目前官網有活動,3折優惠,建議去看看!