(轉載)搭建小型Git伺服器
最近在學習 git 使用,在簡書上看到了一篇不錯的文章,轉載作為備忘記錄。
轉載原文出處:https://www.jianshu.com/p/ec36ab896ed5
有些小公司沒有搭建Git伺服器,讓一些用過Git伺服器的人難以適應,增加了合程式碼的困惑,而且不知道自己改過哪些地方,追蹤的時候會非常麻煩,今天教大家在電腦上搭建自己的Git伺服器。
如果幾個人同時維護一份程式碼,可以向公司申請一臺電腦,當成伺服器,如果沒有條件,別慌,可以把某個同事的電腦當成伺服器(比較苦逼的就是那個同事電腦可能會卡一點),一個人維護那就更好了,接下下開始搭建Git伺服器環境。
一、搭建git伺服器環境
1)、從
6M}NI0B91GR8F8F37GQ83BO.png
2)、下載成功之後,把該目錄放在空間比較大的盤中,譬如本電腦的D盤比較大,我就放在了D盤:D:\git_server\gitblit-1.8.0,git_server是自己建立的一個目錄,把下載的檔案放在該目錄下,進行解壓。
HJ3}3JTAKKKED0Z2MGFZSLG.png
3)、建立儲存專案程式碼的目錄,這裡為D:\git_server\GitProject
4)、更改D:\git_server\gitblit-1.8.0\gitblit-1.8.0\data目錄下的defaluts.properties檔案。如下幾個地方需要修改。
1、 #git.repositoriesFolder = ${baseFolder}/git
git.repositoriesFolder = D:\git_server\GitProject\demo
2、#server.httpPort = 0
server.httpPort = 10010
3、server.httpBindInterface =192.168.1.166 後面的IP地址為電腦的IP地址
4、server.httpsBindInterface =localhost
更改後,儲存關閉檔案。
5)、開始執行gitblit.cmd批處理檔案。如下圖所示表示執行成功。
run_success.png
6、在瀏覽器中輸入:http://192.168.1.166:10010/,如果可以登入網頁表示伺服器環境搭建成功。
7、使用者預設情況下可以用使用者名稱:admin和密碼:admin進行登入,之後可以更改密碼,如下所示。
change_password.png
7、客戶端想訪問服務端首先得建立版本庫,如下圖所示,填寫相關內容後,點選建立按鈕。
create_database.png
8、建立版本庫之後,就會生成如下介面,客戶端可以通過如下地址ssh://[email protected]:29418/~admin/sensor.git訪問伺服器了。
{N)CPA2G%5TSMZI8VGU_5YB.png
注意:如果被當成Git伺服器的電腦是動態獲取IP地址,則需要更換defaluts.properties檔案下的屬性server.httpBindInterface =新的IP地址,然後啟動gitblit.cmd,然後才可以訪問網頁:http://新的IP地址:10010/
二、客戶端訪問Git伺服器
1、客戶端想訪問Git伺服器首先需要下載TortoiseGit,建議下載地址:https://tortoisegit.org/download/,下載並安裝成功後,找一個目錄如:本人在路徑e/worktools下,點選滑鼠右鍵會彈出Git Bash here選項,單機,
輸入git clone http://[email protected]:10010/r/~admin/radio.git,遠端版本庫就拉在本地目錄E:\work_tools\sensor下了。
2、使用者想把自己的專案放到Git伺服器上,譬如把本地的收音機radio專案傳到GIt伺服器上,首先把本地的Radio專案拷貝到E:\work_tools\sensor下,如下所示:
radio.png
3、拷貝好後,進入Git控制檯輸入cd sensor 命令進入sensor目錄,然後輸入git status命令,就可以看到加入的Radio_UI檔案。
[email protected]~LE(43T{7~INM2R)O7.png
4、接著在控制檯輸入git add Radio_UI命令,再次輸入git status命令,此時檔案表示可以提交的狀態。
5、git commit -m "first commit" 通過該命令提交程式碼,""包含的內容是註釋文,此時程式碼仍然沒有上傳到伺服器,而只是快取在本地,接著輸入
git push ssh://[email protected]:29418/~admin/sensor.git
出現如下提示框,需要輸入使用者密碼,前面兩個password直接按Enter鍵,最後一個需要輸入登入時的密碼,輸入之後就開始上傳。
auth.png
6、上傳成功後,使用者可以去伺服器介面檢視,如下所示表示已經上傳成功。
upload.png
三、GiTortoise操作Git伺服器上的程式碼。
建立遠端分支
(1)從伺服器上下載程式碼並儲存在E:\work_demos目錄:
首先進入E:\work_demos目錄下,滑鼠右鍵,點選Git Bash Here開啟Git控制檯,在控制檯中輸入如下命令:
git clone ssh://[email protected]:29418/~admin/Test.git
ssh://[email protected]:29418/~admin/Test.git表示你之前建立庫的路徑。程式碼下完之後,就會有一個新生成一個資料夾Test,通過命令cd Test,進入該目錄。
(1)檢視遠端和本地分支:git branch -a
[email protected] MINGW64 /e/work_demos/Test (master)
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
(2)建立分支:git branch sensor
[email protected] MINGW64 /e/work_demos/Test (master)
$ git branch sensor
(3)檢視本地分支:git branch, master前面有一個星號,表示當前正在master分支上
[email protected] MINGW64 /e/work_demos/Test (master)
$ git branch
* master
sensor
(4)把當前分支推送到遠端服務:密碼就是登陸伺服器的密碼
[email protected] MINGW64 /e/work_demos/Test (master)
$ git push origin sensor
Password authentication
Password:
Total 0 (delta 0), reused 0 (delta 0)
remote: Updating references: 100% (1/1)
To ssh://192.168.1.175:29418/~admin/Test.git
* [new branch] sensor -> sensor
(5)切換到分支sensor
[email protected] MINGW64 /e/work_demos/Test (master)
$ git checkout sensor
Switched to branch 'sensor'
(6)再次檢視本地分支:此時星號在分支sensor前面,說明正在分支sensor上。
[email protected] MINGW64 /e/work_demos/Test (sensor)
$ git branch
master
* sensor
(7) 在分支sensor修改程式碼,例如增加一個檔案。
[email protected] MINGW64 /e/work_demos/Test (sensor)
$ touch a.txt
(8)檢視修改狀態,表示新增加了一個檔案
[email protected] MINGW64 /e/work_demos/Test (sensor)
$ git status
On branch sensor
Untracked files:
(use "git add <file>..." to include in what will be committed)
a.txt
nothing added to commit but untracked files present (use "git add" to track)
(9)增加程式碼並新增;
Administrato[email protected] MINGW64 /e/work_demos/Test (sensor)
$ git add a.txt
[email protected] MINGW64 /e/work_demos/Test (sensor)
$ git commit -m "提交a.txt"
[sensor 5770c67] 提交a.txt
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a.txt
(10)切到主分支:git checkout master
[email protected] MINGW64 /e/work_demos/Test (sensor)
$ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
(11)把sensor分支提交的程式碼合併到master分支上:git merge sensor
[email protected] MINGW64 /e/work_demos/Test (master)
$ git merge sensor
Updating 04b2ecc..5770c67
Fast-forward
a.txt | 0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a.txt
(12)刪除分支sensor: git branch -d sensor
刪除分支後對修改的內容沒有任何影響,因為已經合併到主分支了。
[email protected] MINGW64 /e/work_demos/Test (master)
$ git branch -d sensor
Deleted branch sensor (was e525169).
(11)把程式碼推送到伺服器:git push
[email protected] MINGW64 /e/work_demos/Test (master)
$ git push
Password authentication
Password:
Counting objects: 2, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 278 bytes | 0 bytes/s, done.
Total 2 (delta 0), reused 0 (delta 0)
remote: Updating references: 100% (1/1)
To ssh://192.168.1.175:29418/~admin/Test.git
5770c67..e525169 master -> master
(12)如果多人開發一份程式碼,為了區分使用者,需要改使用者名稱,命令如下:
$git config --global user.email "[email protected]"
$git config --global user.name "Emily"
四、eclipse操作Git伺服器的程式碼。
(1)拉取伺服器程式碼如下圖所示:
F}%HI8N4(G~Z372M%QE~C2V.png
4I%R40J%P}YT_49(40WB5_M.png
URI是遠端伺服器下載程式碼的路徑,直接貼上,其他都會自動生成,密碼是登入伺服器的密碼。
6NL`CBDZ}58M}I6TD~B4}H0.png
{4U2XP1E)%TO52XDI4H4PJU.png
C:\Users\Administrator\git\Test是儲存程式碼的路徑,不是固定的,可以切換成其他路徑。
5OQU_}XW0VG78JDHO`IT5YS.png
FPDS[}[email protected]%MXIL]9D)6C.png
出現如下情況,表示eclipse中已經存在該程式碼。如果不存在Finish按鈕不是灰色的,是可以點選的。到這裡就是最後一步了,點選finish後代碼就已經從遠端伺服器拉取下來了。
QRZ5}[email protected]~E(4)2X%CH.png
(2)配置伺服器的地址
image.png
image.png
(2)在修改程式碼程式碼之前首先需要拉取最新程式碼git pull;
image.png
(3)提交修改的程式碼
image.png
注意:如果被當成Git伺服器的電腦是動態獲取IP地址,每次重啟電腦後,需要檢視電腦的ip,如果電腦IP和上一次相同,只用啟動gitblit.cmd即可。如果不同則需要更換defaluts.properties檔案下的屬性server.httpBindInterface =新的IP地址,然後啟動gitblit.cmd。啟動後,還需要修改原生代碼中.git目錄下config配置檔案後,eclipse才能正常操作伺服器程式碼如下所示:
作者:baby_double
連結:https://www.jianshu.com/p/ec36ab896ed5
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。